一般的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年从江西骑行来到大理,现栖居于洱海边,食人间烟火,过简单生活,做简约设计!很多个人博客都有一个小工具是来统计网站的一些信息,Deephoto主题企业版本首页就集成了网站统计,添加了工作天数、完成作品、新闻动态、摄影师、…前段时间已经发布Purity2.0主题更新的文章,主题已经集成了作品展示、商城,通过半个来月的时间把Buddypress+Bbpress社区论坛…当出现"Allowedmemorysizeof134217728bytesexhausted"错误时,意味着PHP内存限制被…描述
此函数具有一个功能,该功能将用于确定菜单中是否包含页面。
连接到处理页面输出的函数也必须检查用户是否具有所需的…在开发一些比较独特的主题过程中,需要自定义很多内容,本文是如何为分类添加自定义缩略图。
将如下代码添加到主题functions.php中:…WordPress主题文章类型较多,想实现不同的文章类型页面调用不同的边栏,一般的方法是将代码写在主题根目录下的sidebar.php文件…很多网站都会插入优酷或其它网站的在线视频到自己的网站中,默认情况下优酷视频的堆叠顺序并不受CSS样式z-index属性的影响,在视频页面有滚动、…Wordpress的菜单都是通过后台菜单来添加设置,很多时候需要添加一些功能到菜单,比如搜索,或者购物车,这时我们就可以使用wp_nav_men…Wordpress的强大就是什么样的扩展都有,最近浏览用户网站时发现用的“不是我的主题”,查看源代码才发现是使用了网站维护插件maintenan…萨龙网络使用Buddypress社区已经很长一段时间,在社区首页动态中可能获取整个网站的最新文章、用户注册,用户动态内容,而自定义文章类型的发布…在HeadlessWordPress+Nuxt.js的架构中,WordPress作为内容后端通过RESTAPI提供数据,Nux…WordpressMU多站点已经使用很久,在本地测试和主机上安装的都是多站点,极大的方便网站搭建以及主题开发。当我们有多个站点,需要创建的新站…