无法使用Yoast SEO插件删除WordPress中的规范链接

时间:2017-06-06 04:17:30

标签: php wordpress wordpress-hook yoast

所以我试图删除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">位于head部分。

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

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

干杯

2 个答案:

答案 0 :(得分:2)

完成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);

答案 1 :(得分:0)

对我来说,仅将其添加到init操作中有效

add_action('init', function() {

   add_filter( 'wpseo_canonical', '__return_false', 10 );

});