WordPress 自定义前台搜索的文章类型
文 / @UTHEME
WordPress搜索特定文章类型的方法
小本本之前在做WordPress网站开发的时候,遇到了一个问题:如果我只想搜索某个特定的文章类型,该怎么办呢?
刚开始小本本以为这个问题很简单,毕竟WordPress搜索功能很强大,只需要一些简单的设置就可以轻松实现。但是好景不长,小本本发现WordPress搜索默认的搜索内容是文章或页面,还有自定义文章类型时定义的前台可搜索的文章,而不是某个特定的文章类型,这就让小本本有点犯愁了。
后来,小本本研究了一下WordPress搜索功能的$query
对象,发现只需要稍微修改一下这个对象就可以解决问题了。
如何设置WordPress只搜索特定的文章类型?
下面是小本本用过的一段代码,设置了WordPress只搜索“Product”文章类型的文章。
//设置WooCommerce只搜索'product'文章类型下面的文章
if(!is_admin()){
function searchfilter($query){
//限定对搜索查询和非后台查询设置
if($query->is_search&&!is_admin()){
$query->set('post_type',array('product'));
}
return$query;
}
add_filter('pre_get_posts','searchfilter');
}
注意关键的地方product
,这个参数就是自定义文章类型的时候定义的文章类型的slug
参数。
如果你想搜索多个特定的文章类型,只需要稍微修改一下上面的代码就可以了:
$query->set('post_type',array('product','post'));
需要注意的是:这个代码的作用在前台是全局性的,在前台任何地方进行搜索都会受到这段代码的影响,但是不会影响到后台搜索功能。如果你想影响后台搜索功能,只需要把上面代码中的!is_admin()
去掉就可以了。
PS:如果你还不知道各个文章类型的slug
参数是什么,可以在WordPress后台的左边栏进入“项目”页面,查看各个文章类型的“slug”参数。

相关文章
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
创建Vue组件详细教程 2023-09-10 00:23:17
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45
-
WordPress 6.3版本(2023年8月)性能提升了哪些? 2023-08-28 16:56:02
-
Astra 主题团队推出人工智能驱动的 WordPress 网站创建平台 – ZIPWP 2023-08-28 16:49:54
-
WordPress 宣布将为用户提供 100 年域名托管服务 2023-08-28 16:45:27
-
PHP判断if else 和 switch case的区别盘点 2023-07-29 15:11:11
-
详解WordPress独立站SEM中的OCPC方法(含百度推广OCPC与谷歌OCPC) 2023-07-19 08:01:30
-
WordPress的古腾堡全站编辑器site-editor.php介绍(附:site-editor.php启用代码) 2023-07-16 08:01:57
-
WordPress的Customize Partial功能最全介绍(含:demo代码) 2023-07-16 00:21:56