WordPress主题开发中定制个性搜索功能思路

前端时间在给客户开发一个WordPress外贸主题的时刻,对搜索功效有多个个性化需求,一个是搜索指准时间段儿内包罗某个要害词的文章(文章类型post),另外一个是只搜索包罗某个要害词的产物文章(文章类型product),固然另有一个不指定条件的默认搜索功效,默认搜索功效就不说了,这个人人应该都懂。
WordPress主题开发中定制个性搜索功能思路
就拿上面这种搜索指准时间段儿内包罗某个要害词的文章的搜索功效来说吧。首先,默认的搜索框代码是:

  1. <form method="get" action="<?php echo esc_url( home_url( '/' ) ); ?>">
  2. 	<input type="search" name="s" value=""/>
  3. 	<button type="submit" class=""></button>
  4. </form>

专心的同伙应该会发现,使用默认的搜索输入要害词搜索后,搜索效果页面链接的后缀花样是?s=要害词。

注重一下链接中的s,是不是和搜索框中的输入要害词的input输入框的name值是一样的?是的,这实在就是通过链接转达过来的内容。而你输入的要害词,实在就是input中的value值。我们知道wordpress搜索效果出现也是search.php这个文件,这个文件里的代码实在只是做了个判断是否有文章,有的话根据指定花样显示出来,换句话说这个文件的默认代码和archive.php里的代码是一样的,由于这个文件就是WordPress默认的搜索效果页,就像category.php是默认的分类页一样,他会默认的显示包罗你搜索的要害词的文章列表。

那么若是我们需要再增添一些搜索条件限制的话应该怎么操作呢?实在很简朴,先修改搜索框代码,好比我们要加上最先时间和竣事时间限制,那么就可以修改如下:

  1. <form method="get" action="<?php echo esc_url( home_url( '/' ) ); ?>">
  2.     <input type="search" name="s" value=""/>
  3.     <input type="search" name="kssj" value=""/>
  4.     <input type="search" name="jssj" value=""/>
  5.     <button type="submit" class=""></button>
  6. </form>

我们可以看到,内里多了两个input,两个的name划分是kssj(最先时间),jssj(竣事时间),固然这内里是让用户直接输入时间的,这样用户体验并欠好,你可以使用相关js做成日期选择的形式,这里就不多先容了。

搜索框做好以后,你可以输入要害词、最先时间、竣事时间都输入信息后,点击搜索,这个时刻会跳转到一个新的页面,固然,这个时刻并不会根据你输入的时间段儿显示。先不急,看一下浏览器中的链接花样是不是和默认的搜索效果页差异了?是的,酿成了后缀是?s=要害词&kssj=最先时间&jssj=竣事时间。一定是的,这也就是说你在搜索框中输入的搜索条件和要害词都已经通过链接转到达了搜索效果页面,我们可以很轻松的通过$_GET[‘name值’]来获取到对应的要害词或搜索条件,凭证上面的链接我们可以获得 $_GET[‘s] (要害词)、 $_GET[‘kssj] (最先时间) 、 $_GET[‘jssj] (竣事时间) 。

能获取到这些信息,我们仔细想一下,那不就是在搜索效果页面使用文章查询功效,查询到相符这些条件的文章然后用列表的形式显示出来就行了吗?代码如下:

  1. <?php 
  2.    $args = array(
  3.       'post_type' => 'post',//指定文章类型,也可以不指定
  4.       'date_query' => array(  //日期筛选项 
  5.           array(   
  6.              'after'     => $_GET['sdate'], //最先时间
  7.              'before'    => $_GET['edate'], //竣事时间  
  8.              'inclusive' => true, //是否包罗最先时间和竣事时间当前时间的文章  
  9.            ),                                             
  10.        ),
  11.        's' => $_GET['s'],  //搜索的要害词 
  12.     );                
  13.     $the_query = new WP_Query( $args );
  14. ?>
  15. <?php if ( $the_query->have_posts() ) : ?>
  16. <?php while($the_query->have_posts()):$the_query->the_post();?>
  17. 这里是循环输出的文章列表样式,想怎么弄怎么弄
  18. <?php endwhile;?>
  19. <?php else :?>
  20. 没有相关文章
  21. <?php endif;?>

代码就是上面的代码,用在什么地方呢?把search.php中循环输出列表的地方换掉就行了。

那另外一种,就是搜索指定文章类型的文章,好比只搜索产物(文章类型product),同样的原理,先修改搜索框代码,然后搜索效果页通过文章查询来显示就行了。

固然,我们知道默认的搜索效果页只有一个页面模板search.php,有时我们需要差其余搜索,效果页出现差其余样式,这个时刻怎么办呢?也很简朴,凭证你所有的搜索然后先确立差其余搜索效果页,然后把search.php文件的内容改成一个判断,差其余条件,加载差其余搜索效果页模板就行了。好比,产物(文章类型product)和文章(文章类型post)效果页使用差其余模板,那就可以把search.php改成:

  1. <?php 
  2. if ($_GET['post_type']=='product') { //条件是搜索框代码中有一个name="post_type"的input,value要设置为product
  3.     get_template_part( 'search', 'product');
  4. } else {
  5.     get_template_part( 'search', 'default');
  6. }
  7. ?>

最后,强调一下,上面所说的是一个思绪,人人可以凭证这个思绪去定制自己差异需求的搜索功效,好比搜索指定id的文章,指定题目的文章等等。使用方式上面的也只是个参考,差其余需求代码写法差异,然则思绪是一致的。希望这些对有类似需求的同伙有所辅助,若是有什么不明了的,也可以联系网站客服qq举行咨询。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3308869544
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有猫币奖励和额外收入!

主题镇 WP教程 WordPress主题开发中定制个性搜索功能思路 https://zhutizhen.com/14676.html

永远为用户服务的镇长!

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或联络我们。
查看详情

相关文章