Wordpress > Yoast > 如何调整(或禁用)评论 URL 的元机器人?

如果有人能告诉我在 Yoast 中使用元机器人来评论 URL,那就太好了。

正如您在这些示例 URL 的源代码中看到的:

https://www.bussgeldkatalog.org/geschwindigkeitsueberschreitung/comment-page-2/ https://www.bussgeldkatalog.org/geschwindigkeitsueberschreitung/comment-page-3/

播放了两个相互矛盾的元机器人命令。第一个说“noindex”,而来自 Yoast 的第二个说“index”。这些评论 URL 应该有一个唯一的元机器人标签,上面写着“noindex,follow”。

我怎样才能让 Yoast 将其“索引,关注”元机器人标签变成“无索引,关注”标签,或者更好的是,仅在评论 URL 上完全禁用 Yoast 元机器人?

在网上冲浪时,我发现了一个可以帮助我处理后者的代码片段:

add_filter( ‘wpseo_robots’, ‘yoast_seo_robots_remove_single’ );

function yoast_seo_robots_remove_single( $robots ) {
if ( is_single ( 123456 ) ) {
return false;
} else {
return $robots;}
}

问题是我不知道如何将“is_single (123456)”更改为不同的标识符,其中包括所有评论 URL,仅此而已。

期待任何有价值的提示!

保持积极和测试阴性,罗马

stack overflow Wordpress > Yoast > How to adjust (or disable) Meta-Robots for Comment-URLs?
原文答案

答案:

作者头像

我在这里没有太多要说的了。

我们可以检索 paginate_comments_links() 并访问 current 键,它应该返回当前的评论页码。我没有使用 is_paged() 因为我无法验证评论页面是否被视为第 n 页(例如:如果它有 <!--nextpage--> quickTag)。

我们可以使用 get_comments_number() 来检索当前的评论数。我没有使用 have_comments ,因为我们会在注释循环之外调用它 (@see Wordpress have_comments does not work )。

<?php

add_filter( 'wpseo_robots', function () {

    if ( is_single() ) {

        $post_id = get_the_ID();

        $current_page = paginate_comments_links()['current'];

        if ( comments_open( $post_id ) && get_comments_number( get_the_ID() ) > 0 && $current_comment_page > 1 ) {

            return false;

        };

    };

};

wpseo_robots 是 Yoast 用来输出元标签的钩子。