2017-06-06 95 views
1

因此,我试图删除分页的WordPress的标题中的规范链接,但我尝试的所有建议都无法正常工作。无法删除与Yoast SEO插件WordPress的典型链接

这里是我的代码,这是我的functions.php文件:

function my_add_noindex_tags(){ 
    $paged = intval(get_query_var('paged')); 

    if(is_search() || is_404()) : 
     echo '<meta name="robots" content="noindex,follow">'; 
    endif; 

    if ($paged >= 2) : 
     add_filter('wpseo_canonical', '__return_false', 10, 1); 

     remove_action('wp_head', 'rel_canonical'); 

     echo '<meta name="robots" content="noindex,follow">'; 
    endif; 
} 
add_action('wp_head','my_add_noindex_tags', 4); 

我知道里面if ($paged >= 2) :运行的代码,因为这个标签<meta name="robots" content="noindex,follow">是在头部分。

任何人都知道我可能会出错的地方。

这里的问题是Yoast SEO添加的规范链接未按预期正确删除。

干杯

+0

您必须了解什么是负责插入代码并采取相应措施。你在哪里发现'wpseo_canonical'过滤器是一个你可以使用的过滤器? – josephting

+0

嗨@josephting我使用yoast seo插件,所以根据他们的[API](https://yoast.com/wordpress/plugins/seo/api/)我使用'add_filter('wpseo_canonical','__return_false' );'去除规范。但它不起作用 –

+0

也许别的东西正在打印它。不知道您使用的是什么插件和/或主题,无法查明原因。由于您已经应用适当的过滤器来删除由yoast插入的规范链接以及本地'rel_canonical'动作,因此可能还有其他内容正在插入规范链接。而且'rel_canonical'也被添加到'embed_head'动作中,所以它可能不会起作用,但也可以尝试添加'remove_action('embed_head','rel_canonical')。 – josephting

回答

1

通过Yoast SEO codes去后,它似乎是规范操作添加到wpseo_head行动。

你可以在使用wp_head来增加你的函数来使它正常执行时使用优先级1,或者使用下面的适当方法进行操作。使用wpseo_head操作。

function remove_canonical() { 
    $paged = intval(get_query_var('paged')); 

    if ($paged >= 2) { 
     add_filter('wpseo_canonical', '__return_false', 10); 
    } 
} 
add_action('wpseo_head', 'remove_canonical', 4); 
+0

作品一种享受。感谢m8 –