Yoast Seo插件-当帖子被设置为粘滞时,自动设置帖子的无索引

时间:2015-06-28 作者:gurung

我是wordpress网站的内容主管,它使用wordpress seo by yoast 插件。我的职责包括分析内容,如果合适的话,将其标记为粘性。当我将某篇文章标记为粘滞时,有一个函数可以将该文章设置为仅显示在类别页面上。接下来,我要做的是按照网站所有者的指示手动将single post view设置为no index。

由于这个网站很大,这个过程真的很乏味,所以我正在寻找一种方法来部分自动化这个过程。我正在尝试组合一个函数,将帖子设置为无索引,只要我将帖子更新为粘滞状态。

首先,我想知道当帖子设置为粘滞状态时,会触发哪个wp函数。第二,由于网站使用yoast\'s seo-plugin, 我想了解seo插件的挂钩/过滤器,它将帖子设置为无索引。寻找相关的过滤器或挂钩,我发现seo-plugin API yoast的页面有一些过滤器,但我找不到任何对我有用的东西。

2 个回复
最合适的回答,由SO网友:gurung 整理而成

在解决这个问题的过程中,我发现great resource for wordpress hooks 找到了合适的人选wpseo_saved_postdata here. 如果您认为代码可能更好,请随意修改。就目前而言,这对我很有效。

function set_noidex_when_sticky($post_id){
        if ( wp_is_post_revision( $post_id ) ) return;
        //perform other checks

        //if(is_sticky($post_id)){ -----> this may work only AFTER the post is set to sticky
        if (isset($_POST[\'sticky\']) == \'sticky\') { //this will work if the post IS BEING SET ticky  
            add_action( \'wpseo_saved_postdata\', function() use ( $post_id ) { 
            update_post_meta( $post_id, \'_yoast_wpseo_meta-robots-noindex\', \'1\' );
            }, 999 );
        }
}
 add_action( \'save_post\', \'set_noidex_when_sticky\' );
仅限_yoast_wpseo_meta-robots-noindex 是我想要改变的元。下面是yoast的一些元键,如果您想使用代码进行任何更改。

_yoast_wpseo_google-plus-description
_yoast_wpseo_linkdex
_yoast_wpseo_opengraph-description
_yoast_wpseo_redirect
_yoast_wpseo_canonical
_yoast_wpseo_sitemap-html-include
_yoast_wpseo_sitemap-prio
_yoast_wpseo_sitemap-include
_yoast_wpseo_meta-robots-adv
_yoast_wpseo_meta-robots-nofollow
_yoast_wpseo_meta-robots-noindex
_yoast_wpseo_metadesc
_yoast_wpseo_title

SO网友:Christine Cooper

你为什么不检查一下帖子是否有粘性,然后添加noindex?您可以使用Conditional Tag is_sticky().

所以,在你的<head> 在您的header.php 文件,请执行以下检查:

if ( is_sticky() && is_single() ) {
    // it\'s a post and it\'s sticky, let\'s add noindex
    echo \'<meta name="robots" content="noindex">\';
}

结束

相关推荐