【问题标题】:Wordpress search in custom post type without plugin没有插件的自定义帖子类型中的 Wordpress 搜索
【发布时间】:2020-07-21 17:43:37
【问题描述】:

我正在寻找一种仅在自定义帖子类型中进行搜索查询并且有时会过滤掉类别的方法。

我有构建搜索查询的代码,但 WordPress 仍然返回帖子和招聘广告。

<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>" role="search">
    <label class="sr-only" for="s"><?php esc_html_e( 'Search', 'understrap' ); ?></label>
    <div class="input-group">
      <input class="field form-control" id="s" name="s" type="search"
        placeholder="<?php esc_attr_e( 'Otsi &hellip;', 'job-ads' ); ?>" value="<?php the_search_query(); ?>">
      <input type="hidden" name="post_type" value="job-ads">
    </div>
  </div>
  <div class="col-md-3">
    <div class="input-group">
      <?php wp_dropdown_categories( array(
          'show_option_all' => __('All job ads', 'job-ads'),
          'taxonomy' => 'tookategooria',
          'name' => 'category',
          'orderby' => 'name',
          'echo' => 1,
          'selected' => $cat,
          'hierarchical' => true,
          'class'   => 'cat-dropdown',
          'id'  => 'custom-cat-drop',
          'value_field' => 'term_id'
        ) ); ?>  
    </div>
  </div>
  <div class="col">
    <span class="input-group-append">
      <input class="submit btn" id="searchsubmit" name="submit" type="submit"
      value="<?php esc_attr_e( 'Search', 'understrap' ); ?>">
    </span>
    </form>

我的自定义帖子类型也注册了没有插件,公开查询和其他设置已检查。

如果我手动使用我的搜索字符串,那么它仍然会返回所有帖子

字符串 www.domain.com/?s=&post_type=job-ads&category=323

没有分类也不行。

对于搜索结果,我使用模板来呈现循环,就像在 Worpress 自己的主题搜索结果中一样。基本上所有的代码都是建立在相同的基础上的。

任何想法如何强制 WordPress 正确显示搜索结果?

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    在你的functions.php中添加以下代码

    function my_pre_get_posts($query) {
    
    if( is_admin() ) 
        return;
    
    if( is_search() && $query->is_main_query() ) {
        $query->set('post_type', 'custom-post-type-name');
    } 
    
    }
    
    add_action( 'pre_get_posts', 'my_pre_get_posts' );
    

    【讨论】:

    • 谢谢,但它如何影响页面上的其他搜索?我可以将此代码仅附加到一个模板吗?
    猜你喜欢
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2018-06-15
    • 2017-02-11
    • 1970-01-01
    相关资源
    最近更新 更多