分享各种网络资源
是我乃至整个互联网的精髓所在
最新消息:站点开启被动注册模式,详情点击这里了解
 您目前所在位置: 站点首页 » WordPress » 代码 » WordPress分类搜索的另外一种方法
+

WordPress分类搜索的另外一种方法

  • 改造自带搜索框
  • 处理搜索条件
  • WordPress分类搜索的另外一种方法-BanYuner

    前段时间,我在这博客发了有关WordPress分类搜索的方法,详见: 添加WordPress搜索特定分类下的文章功能,那么这个功能很大一定程度上面帮助到了大家,毕竟有针对性的话,效率就会高不少吧。

    那么同样的,今天在解决相关问题的时候,再次了解到了一个方法,这里也直接给大家送上,这个方法可能来的没有露兜博客那么简单,但是也不失为一种好方法。代码部分来自tree workshop博客:

    改造自带搜索框

    下面是第一部分相关代码:

    <form role="search" method="get" class="search-form" action="<?php echo home_url(); ?>">
      <label>
      <span class="screen-reader-text">Search:</span>
      <input type="search" class="search-field" placeholder="Search&hellip;" value="" name="s" title="Search:" />
      </label>
      <input type="submit" class="search-submit" value="Search" />
    </form>
    

    这部分代码主要是作为铺垫,为了后面的嗲吗能够实现效果,代码的头和尾的部分是很多博客都有的,所以大家根据自己的情况来做修改。

    下面是第二部分代码

    <?php
    $args = array(
        'hide_empty'               => 0
    );
    $categories = get_categories( $args );
    //上面的代码获取所有分类
    ?>
    <form role="search" method="get" class="search-form" action="<?php echo home_url(); ?>">
      <label>
      <span class="category-text">Category:</span>
      <select name="cat">
        <option value="">All Category</option>
        <?php foreach($categories as $category){ ?>
          <option value="<?php echo $category->term_id; ?>"><?php echo $category->name; ?></option>
        <?php } ?>
      </select>
      </lable>
      <label>
      <span class="screen-text">Search:</span>
      <input type="search" class="search-field" placeholder="Search&hellip;" value="" name="s" title="Search:" />
      </label>
      <input type="submit" class="search-submit" value="Search" />
    </form>
    

    那么这个代码部分就是修改的整个框架部分,包括列表部分以及输入框部分。

    处理搜索条件

    两个部分已经处理完毕之后,我们需要的就是添加处理函数,要不然仅仅有上面的是没有效果的:

    function return_only_selected_category() {
        if ( isset($_REQUEST['s']) && isset($_REQUEST['cat']) ){ //若为搜索页面,且有cat值传入
            global $wp_query;
            $desired_cat = $_REQUEST['cat']; //要搜索的分类
            $excluded = get_categories("hide_empty=false&exclude={$desired_cat}"); //要排除的分类
            $wp_query->query_vars['cat'] = "-{$excluded}"; //除了要搜索的,其它都排除
            //还可添加其它条件,比如要搜索的文章类型$wp_query->query_vars['post_type'] ="product";
        }
    }
    add_filter('pre_get_posts', 'return_only_selected_category');
    

    上面的代码放入functions.php文件中即可。

    关注我们 打赏 分享此文
    微信扫码,关注我们
    扫码,支持我
    WordPress分类搜索的另外一种方法
    支付宝(点击图片切换)
    扫码,支持我
    WordPress分类搜索的另外一种方法
    微信(点击图片切换)
    扫码,手机看
    WordPress分类搜索的另外一种方法
    匿名

    个人评价:┃草根博主┃站点无技术含量┃文章内容不够吸引人┃转载内容随处可见┃资源均来自网络┃ 分享是我的宗旨,也是这个站点存在意义,分享的东西你现在可能不需要,但是我相信只要在某个时间你需要的时候能在这里找到,那么我就是成功的

    相关推荐

    • WordPress前端配合后台指定分类判断办法

      WordPress前端配合后台指定分类判断办法

      这个标题说实话我真的不知道该怎么说明,但是看完了内容之后可能你就知道我说的是什么意思了。 今天在实现一个功能的时候,遇到了问题,首选描述一下...

      点击查看
    • WordPress站点搜索添加标签过滤功能

      WordPress站点搜索添加标签过滤功能

      很久之前我已经给我的站点搜索添加了分类搜索,也就是搜索的时候可以指定分类来增强搜索的精准性,那么今天介绍的同样是利用标签来精准进行搜索,具体...

      点击查看
    • WordPress留言数据到搜狐畅言

      WordPress留言数据到搜狐畅言

      前段时间才说了,多说因为不知道什么原因已经决定关闭了,那么我们需要做的事情就是导出数据了,但是我有理由相信,习惯多说的用户可能不会习惯Wor...

      点击查看
    WordPress分类搜索的另外一种方法
    0 + 2 =
    • 昵称 (必填)  
    • 邮箱 (必填)
    • 网址 (选填)