如何在特定的wordpress页面上使用noindex,nofollow

时间:2019-09-14 16:24:47

标签: wordpress code-snippets

我想阻止特定页面在代码段中被wp索引。尝试了以下内容,但元数据并未出现在标题中

add_action( 'wp_head', function() {
   if ($post->ID == 7407 || $post->ID == 7640 || $post->ID == 7660) {
        echo '<meta name="robots" content="noindex, nofollow">';
    }
} );

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

此处存在变量范围问题:除非您使用$post关键字,否则global对象在您的函数中将不可用。

add_action( 'wp_head', function() {
   global $post;

   if ($post->ID == 7407 || $post->ID == 7640 || $post->ID == 7660) {
        echo '<meta name="robots" content="noindex, nofollow">';
    }
} );

但是,$post对象并非始终可用:仅在实际查看postpage或自定义帖子类型时设置。如果您尝试按原样使用此代码,则在未设置$post时会抛出一些PHP警告,因此最好使用is_page()函数,因为该函数会检查您会自动:

add_action( 'wp_head', function() {
   if (is_page(7407) || is_page(7640) || is_page(7660)) {
        echo '<meta name="robots" content="noindex, nofollow">';
    }
} );