首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为单个博客文章自定义rel=canonical标记

为单个博客文章自定义rel=canonical标记
EN

WordPress Development用户
提问于 2018-05-03 18:13:24
回答 2查看 2.9K关注 0票数 0

我为另一个网站写了一篇博客文章。我想在我的网站上发表同样的博客文章,但是包含一个指向原始发行者的canonical URL

这允许我张贴在我的网站上的文章,同时通知搜索引擎的标准位置的帖子,并避免SEO处罚。

在wp_head操作中,WordPress会自动打印rel=canonical标记,并将其放置在发布的头部。

我尝试使用代码片段输出我自己的rel=canonical (可能是将已经自动输出的代码进行复合):

代码语言:javascript
复制
'; ?>

检查后,此代码永远不会打印到页面上。我想这可能与解析顺序有关。

有人知道我如何正确地实现这一点吗?我不想过多地处理WordPress本机代码,但我希望找到一种简单的机制,允许我在每个帖子的基础上修改rel=canonical元标记。

我不想用Yoast。

提前谢谢你,

EN

回答 2

WordPress Development用户

回答已采纳

发布于 2018-05-04 12:08:10

检查后,此代码永远不会打印到页面上。我想这可能与解析顺序有关。

这要看你把它加在哪里了。如果要将代码添加到页面的元素中,则需要将其放入页面的头部、header.php模板或主题的functions.php文件或带有钩子的插件中。赤裸裸地粘贴functions.php中的代码(没有钩子或函数定义)将导致WordPress在页面开始输出之前输出它,这可能会导致错误。

无论如何,在这种情况下,WordPress提供了一个过滤器钩子,get_canonical_url,它可以用来更改WordPress添加的规范标题中使用的URL。

像这样使用它:

代码语言:javascript
复制
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 );
票数 2
EN

WordPress Development用户

发布于 2021-05-27 16:44:25

或为所有网页添加它们,但主页除外:

代码语言:javascript
复制
票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/302620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档