一般的Wordpress主题中都有多种自定义文章类型,除了了默认的文章还会有作品、商品等自定义类型的文章,而WordPress默认只能搜索到文章,对于自定义文章类型的文章需要我们进行判断,其实也可以在搜索中添加自定义文章类型,但是这些所有的文章类型都在一个页面显示,不好区分。
如果主题中有文章、作品与产品(Woocommerce插件),在搜索中就要对文章类型进行选择,同时搜索结果中显示该文章类型下的文章,实现的方法很简单:
为搜索表单添加选项
1、一般的搜索表单:
- <form method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>" >
- <input class="search-input" name="s" type="text" placeholder="站内搜索…" />
- <input title="站内搜索" class="search-submit" type="submit" value="">
- </form>
2、添加文章类型选项的表单:
- <form method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">
- <select name="post_type" class="search-select">
- <option value="post">
- <?php _e( '文章', 'salong' ); ?>
- </option>
- <option value="portfolio">
- <?php _e( '作品', 'salong' ); ?>
- </option>
- <option value="product">
- <?php _e( '产品', 'salong' ); ?>
- </option>
- </select>
- <input class="search-input" name="s" type="text" placeholder="站内搜索…" />
- <input title="站内搜索" class="search-submit" type="submit" value="">
- </form>
<option value="post">中的“post”对应的是自定义文章类型,这样在搜索时就可以选项要搜索的文章类型。表单实现了,搜索结果中得显示对应的内容。
对搜索进行判断
- <?php $post_type=$_GET['post_type'];
- $located=get_template_part( 'content/search', $post_type );
- if ( isset( $post_type ) && locate_template($located, $require_once) ) {
- get_template_part( 'content/search', $post_type );
- exit;
- }
- ?>
注意:“get_template_part( 'content/search', $post_type );”是获取主题根目录下的content目录下的search-$post_type.php文件,如果是文章,文件则为search-post.php,依此类推。
search-$post_type.php文件中的内容根据主题的情况而定,使用Woocommerce商城插件添加的自定义文章类型产品,不需要添加类似search-product.php文件,因为插件已经有这些文件。本文原创,作者:萨龙龙,其版权均为萨龙网络所有。
如需转载,请注明出处:https://salongweb.com/wordpress-custom-post-type-search.html
一个平平常常的人,热爱生活、旅行和摄影,骑行去过西藏,一直计划再去。14年从江西骑行来到大理,现栖居于洱海边,食人间烟火,过简单生活,做简约设计!WooCommerce后台对管理员的通知『连接您的店铺到WooCommerce.com接受扩展更新和支持』,是3.3.1版本后出来了,新的…使用WordPressMU多站点来管理所有的站点确实很方便,可以省去很多重复的工作,节省资源。萨龙网络使用MU多站点已经很久,已经爱不释手,也…还是在开发导航类主题Slhao的时候遇到的问题,主题使用CodestarFramework专业版选项框架,文章的Metabox选项…WooCommerce插件默认为我的帐户页面提供了:仪表盘、订单、下载、地址、帐户详情几个页面,以及一个退出登录的按钮,如果出售的是实物或者没…MNews和LensNews主题都有前台投稿的功能,用户可以上传图片等文件,管理员是不希望用户上传任意的媒体文件,这时我们可以对用户上传的…自定义域在Wordpress中有着相当重的份量,很多功能都可以在其中实现,最近有朋友要萨龙龙添加两个功能,一是缩略图使用自定义域来获取(支持外链…CodestarFramework,一个轻量且易用的WordPress选项框架,在萨龙龙最新设计开发的企业教育培训类WordPress…wordpress图片延迟加载已经不是稀奇的功能,网上有很多类似的文章,添加相当简单方便,woocommerce缩略图图片延迟加载也很方便的可以…前面我们介绍了wpadd_inline_style函数的使用,并为主题添加自定义样式切换功能,既然有函数可以向站点输出css样式,同时也可以…网上已经有很多介绍WordPress多语言的插件了,比如Polylang和WPML等强大的多语言插件,但是只是介绍,很快都是能掌握怎…使用WordPress+Nuxt3做前后端分离项目时,菜单需要多维数组,且不限层级,可以使用递归函数很方便地将wp_get_nav_menu…很多网站都会插入优酷或其它网站的在线视频到自己的网站中,默认情况下优酷视频的堆叠顺序并不受CSS样式z-index属性的影响,在视频页面有滚动、…