• 注册
  • 搭建教程 搭建教程 关注:0 内容:7119

    WordPress搜索结果排除指定页面/文章/自定义分类

  • 查看作者
  • 打赏作者
    • 1
    • 搭建教程
    • 这就很尴尬了,搜索结果也太广泛了。

      用户搜索到一些无关的内容,估计也很不爽,然后就尝试在搜索结果页面排除一些内容,例如:指定页面、指定文章、指定自定义分类(post_type)等内容。

      嗯,折腾一阵子也算是折腾好了,现在搜索页只会显示搜索相关的文章了。

      方法也挺简单,几行代码就能搞定,下面分享几段搜索结果排除内容的WordPress代码

      搜索结果排除指定ID文章或页面

      //搜索结果排除指定ID的文章或页面

      function Bing_search_filter_id($query) {
      if ( !$query->is_admin && $query->is_search) {
      $query->set(\’post__not_in\’, array(40,819));//文章或者页面的ID
      }
      return $query;
      }
      add_filter(\’pre_get_posts\’,\’Bing_search_filter_id\’);

      搜索结果排除指定分类的文章

      //搜索结果排除某些分类的文章
      function Bing_search_filter_category( $query) {
      if ( !$query->is_admin && $query->is_search) {
      $query->set(\’cat\’,\’-15,-57\’); //分类的ID,前面加负号表示排除;如果直接写ID,则表示只在该ID中搜索
      }
      return $query;
      }
      add_filter(\’pre_get_posts\’,\’Bing_search_filter_category\’);

      搜索结果排除所有页面

      //搜索结果排除所有页面
      function search_filter_page($query) {
      if ($query->is_search) {
      $query->set(\’post_type\’, \’post\’);
      }
      return $query;
      }
      add_filter(\’pre_get_posts\’,\’search_filter_page\’);

      搜索结果排除自定义分类(post_type)

      //搜索结果排除自定义分类(post_type)
      function searchAll( $query ) {
      if ( $query->is_search ) { $query->set( \’post_type\’, array( \’site\’ )); }
      return !$query;
      }
      add_filter( \’the_search_query\’, \’searchAll\’ );

       

      文章来自分享者资源 链接!

      无敌了
      回复

      请登录之后再进行评论

      登录

      WordPress后台-外观-小工具 进行配置小工具

    • 任务
    • 小程序码    公众号 小程序&公众号
    • 帖子间隔 侧栏位置: