分享各种网络资源
是我乃至整个互联网的精髓所在
 您目前所在位置: 站点首页 » WordPress » 代码 » WordPress分类搜索的另外一种方法
+ 2

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自动截取文章首段限定字数做为摘要

      今天一个朋友问我这个问题,说实话,我也不像百度了,所以直接把 DUX 的方法介绍给大家了,我个人还是比较看好这个方法的。 DUX 实现这个功...

      点击查看
    WordPress分类搜索的另外一种方法
    5 + 4 =