最近,一位读者问我们如何防止WordPress中的文本选择和…
您可能听说过许多 WordPress Blogger 正在使用的强大的 All in One SEO 插件。根据报告,该插件已获得超过 300 万次安装。
All in One SEO 插件看起来非常强大和强大,虽然它非常有用,但这个插件有一个特别的问题困扰着它的用户。
该插件会自动将 rel canonical 添加到每个无索引页面。
每当用户未索引特定页面或帖子时,插件都会将 rel canonical 添加到该页面或帖子。这对用户来说是一个真正的问题,因为不建议用户在无索引页面上使用 rel canonical。

如何解决问题
该插件的开发团队已针对此问题提出了一般性解决方案。他们建议用户使用过滤器钩子来改变这个插件处理不同情况的方式。
换句话说,用户需要在functions.php 文件中应用一些代码来自定义插件设置。
如何使用 Hooks 摆脱 Rel Canonical
负责为此特定修复程序自定义设置的代码非常简单明了。
您只需要通过代码行和函数添加过滤器,以便根据所需条件去除 rel 规范。
如何设置流程
您需要完成以下步骤,以便可以设置该过程:
- 首先要做的是备份 WordPress 博客。每当用户决定使用 WordPress 代码时,始终建议备份所有内容。这是为了确保更改不会对现有博客造成损害,并且您可以在进行更改后移回最新版本。除了备份您自己的博客外,用户还必须确保托管服务提供商每天都在备份整个网站。
- 第二步是为您的 WordPress 主题打开 functions.php 文件。理想情况下,该文件必须位于特定主题的根目录中。如果您无法找到该文件或在找到它时遇到任何困难,建议您联系托管服务提供商或开发商以帮助您找到正确的文件。
- 之后,重要的是在添加新代码之前备份当前的 functions.php 文件。这是为了确保在出现问题或无法按预期运行时,您可以使用未修改的文件版本。您可以只下载文件,将其保存为备份,然后返回原始文件对代码进行更改。
- 现在是将代码添加到functions.php 文件的关键步骤的时候了。下面的代码是检查当前页面是归档页面还是分类页面。如果页面已经是规范的,则此代码将在 HTML 中指示 rel 规范。
add_filter('aioseop_canonical_url','remove_canonical_url', 10, 1);
function remove_canonical_url( $url ){
global $post;
if( is_category() ){
return false; // Remove the canonical URL for categories.
} elseif (is_archive() ){
return false; // Remove the canonical URL for archives.
}
return $url;
}
- 下一步是将修改后的functions.php文件上传到站点,在主题的根目录下。这是上传文件的理想位置。如果您不知道根目录的位置,请寻求开发人员或托管服务提供商的帮助,并避免在 WordPress 安装的任何或每个部分上传文件。
- 一旦文件上传到正确的位置,就可以通过访问存档或类别页面来测试代码了。代码的成功在于如果 rel canonical 不存在于 HTML 中,并且只看到 meta robots 标签。
- 用户不得停止测试文件。您必须重新检查您的主页、博客文章和网页,以确保正确指示 rel canonical。您需要确认主题和其他插件与 functions.php 文件中的更改同步并且没有异常行为。
- 如果在彻底测试之后您发现没有任何问题并且一切似乎都按预期工作,那么恭喜您,您已经使用 WordPress 中的 All in One SEO 插件成功地从 noindexed 页面中删除了 rel canonical。
- 此外,您可以使用相同的过程从任何特定页面或基于 ID 的帖子中删除 rel canonical。为此,可以将以下代码添加到已创建的函数中以检查某个页面或帖子。您只需要添加一个指示页面或帖子 ID 的 elseif。
elseif ( $post->ID === 2){
return false; // Remove the canonical URL for post #2.
}
结论
这样,用户可以从所有无索引档案或类别以及任何特定页面或帖子中删除 rel canonical。
可能仍然需要编辑某些其他代码,但上述方式被证明是一种理想的解决方案,不需要太多时间来设置。