【问题标题】:Stop wordpress custom post type from appearing in search engines阻止 wordpress 自定义帖子类型出现在搜索引擎中
【发布时间】:2026-01-09 11:05:02
【问题描述】:

我为我当前的项目创建了一个名为“公司”的新帖子类型。 现在的问题是,谷歌开始索引我的公司页面,如: www.domain.com/company-name

我想对这个区域保密,不被任何搜索引擎列出。 我遇到了这个“publicly_queryable”参数。对于 register_post_type 函数。但我不确定这是否会按我想要的方式工作。

我不想为此使用任何插件。

【问题讨论】:

    标签: php wordpress custom-post-type


    【解决方案1】:

    更好的方法是使用wp_robots() 过滤器,如here 所述。

    add_filter( 'wp_robots', function( $robots ) {
      if ( is_singular( 'company' ) ) {
        $robots['noindex']  = true;
        $robots['nofollow'] = true;
      }
    
      return $robots;
    } );
    

    【讨论】:

      【解决方案2】:

      上面的答案在正确的轨道上,但是函数应该回显不返回:

      function noindex_for_companies()
      {
          if ( is_singular( 'company' ) ) {
              echo '<meta name="robots" content="noindex, follow">';
          }
      }
      
      add_action('wp_head', 'noindex_for_companies');
      

      【讨论】:

        【解决方案3】:

        如果你想用一个函数来做,你可以通过在你的 functions.php 文件中添加类似这样的东西来添加 noindex-tag:

        function noindex_for_companies()
        {
            if ( is_singular( 'company' ) ) {
                return '<meta name="robots" content="noindex, follow">';
            }
        }
        
        add_action('wp_head', 'noindex_for_companies');
        

        company 不同时,将其替换为您的自定义帖子类型。

        请注意,当有人拥有 URL 时,dis 不会隐藏帖子,它只是鼓励搜索引擎不对其进行索引。

        【讨论】:

        • 在类似的情况下,这对我来说非常有效。谢谢!
        • 这个答案真的有效吗?我试过了,但它不适合我。
        【解决方案4】:

        在该页面上,您可以包含告诉机器人不要索引该页面的元标记:

        <meta name="robots" content="noindex, nofollow" />
        

        或者,您可以在您的域的基础上创建一个robots.txt 文件,告诉他们不要索引所述页面(爬虫应该查找此文件):

        User-agent: *
        Disallow: /company-name
        

        【讨论】:

        • 我没有为此单独创建一个帖子视图文件。我知道我可以为这种帖子类型在 header.php 文件中添加一个条件。但是有没有其他方法可以从functions.php中做到这一点。我不需要此自定义帖子类型的单个帖子视图。
        • robots.txt 可能是完成您需要的最简单的途径
        • 还有很多条目,所以有没有办法在添加新公司时自动更新robot.txt。
        • 我过去创建的插件也有同样的问题。有没有办法直接从插件中做到这一点?
        • robots.txt 将允许您指定文件夹,因此 Disallow /companies/ 会阻止搜索引擎也依次抓取 /companies/company-name-here - 不确定这是否对您有帮助。或者,我可以考虑制作一个自定义插件,仅在您不想抓取的特定页面上注入标题,但我没有时间对此进行深入讨论:/祝你好运!
        最近更新 更多