我为另一个网站写了一篇博客文章。我想在我的网站上发表同样的博客文章,但是包含一个指向原始发行者的canonical URL。
这允许我张贴在我的网站上的文章,同时通知搜索引擎的标准位置的帖子,并避免SEO处罚。
在wp_head操作中,WordPress会自动打印rel=canonical标记,并将其放置在发布的头部。
我尝试使用代码片段输出我自己的rel=canonical (可能是将已经自动输出的代码进行复合):
'; ?>检查后,此代码永远不会打印到页面上。我想这可能与解析顺序有关。
有人知道我如何正确地实现这一点吗?我不想过多地处理WordPress本机代码,但我希望找到一种简单的机制,允许我在每个帖子的基础上修改rel=canonical元标记。
我不想用Yoast。
提前谢谢你,
发布于 2018-05-04 12:08:10
检查后,此代码永远不会打印到页面上。我想这可能与解析顺序有关。
这要看你把它加在哪里了。如果要将代码添加到页面的元素中,则需要将其放入页面的头部、header.php模板或主题的functions.php文件或带有钩子的插件中。赤裸裸地粘贴functions.php中的代码(没有钩子或函数定义)将导致WordPress在页面开始输出之前输出它,这可能会导致错误。
无论如何,在这种情况下,WordPress提供了一个过滤器钩子,get_canonical_url,它可以用来更改WordPress添加的规范标题中使用的URL。
像这样使用它:
function wpse_302620_canonical_url( $canonical_url, $post ) {
if ( $post->ID === 1234 ) {
$canonical_url = 'https://www.examplesite.com/my-guest-post';
}
return $canonical_url;
}
add_filter( 'get_canonical_url', 'wpse_302620_canonical_url', 10, 2 );发布于 2021-05-27 16:44:25
或为所有网页添加它们,但主页除外:
https://wordpress.stackexchange.com/questions/302620
复制相似问题