下面是一个(未经测试的)示例,我们在附件页面的标题标记中插入了附件帖子的规范链接:
add_action( \'wp_head\', \'wpse_attachment_parent_canonical\' );
function wpse_attachment_parent_canonical()
{
// Only target attachment\'s pages
if( ! is_attachment() )
return;
$object = get_queried_object();
// Make sure we\'re dealing with a WP_Post object
if ( ! is_a( $object, \'\\WP_Post\' ) )
return;
// Only target attachments that are attached to posts
if( 0 == $object->post_parent )
return;
// Output canonical link
printf(
\'<link rel="canonical" href="%s" />\' . PHP_EOL,
esc_url( get_permalink( $object->post_parent ) )
);
}
请注意,我们不能使用
get_canonical_url
此处筛选以调整规范url,因为它仅应用于具有发布状态的对象。附件具有继承后状态。