我使用的插件名为rel=canonical,它可以使所有分布式帖子返回到源代码。我联系了开发人员,他们告诉我:
默认情况下,分布式帖子的规范URL将指向原始内容,这与SEO最佳实践相对应。这可以通过使用自定义代码扩展分发服务器并删除分发服务器的默认前端规范URL筛选(查找“get\\u canonical\\u URL”和“wpseo\\u canonical”)来覆盖。
以下是他们的代码:
public static function canonicalize_front_end() {
add_filter( \'get_canonical_url\', array( \'\\Distributor\\InternalConnections\\NetworkSiteConnection\', \'canonical_url\' ), 10, 2 );
add_filter( \'wpseo_canonical\', array( \'\\Distributor\\InternalConnections\\NetworkSiteConnection\', \'wpseo_canonical_url\' ) );
add_filter( \'wpseo_opengraph_url\', array( \'\\Distributor\\InternalConnections\\NetworkSiteConnection\', \'wpseo_og_url\' ) );
add_filter( \'the_author\', array( \'\\Distributor\\InternalConnections\\NetworkSiteConnection\', \'the_author_distributed\' ) );
add_filter( \'author_link\', array( \'\\Distributor\\InternalConnections\\NetworkSiteConnection\', \'author_posts_url_distributed\' ), 10, 3 );
}
我进入了我的孩子主题功能。php文件,并添加了以下内容:
remove_filter( \'get_canonical_url\', array( \'\\Distributor\\InternalConnections\\NetworkSiteConnection\', \'canonical_url\' ), 10, 2 );
remove_filter( \'wpseo_canonical\', array( \'\\Distributor\\InternalConnections\\NetworkSiteConnection\', \'wpseo_canonical_url\' ) );
这似乎对我不起作用。有什么想法吗?
SO网友:butlerblog
你不能只是添加remove_filter()
让它拆下过滤器。
remove_filter()
总是在添加要删除的回调后发生。你的remove_filter()
调用很可能在插件的add_filter()
.
你需要找到插件挂起的位置/时间canonicalize_front_end()
然后运行相应的删除操作(即在该时间或之后)。
例如,如果canonicalize_front_end()
是在init
操作,然后可以执行以下操作:
add_action( \'init\', \'my_remove_filter\' );
function my_remove_filter() {
remove_filter( \'get_canonical_url\', array( \'\\Distributor\\InternalConnections\\NetworkSiteConnection\', \'canonical_url\' ), 10, 2 );
remove_filter( \'wpseo_canonical\', array( \'\\Distributor\\InternalConnections\\NetworkSiteConnection\', \'wpseo_canonical_url\' ) );
}