新闻中心

WordPress小技巧:实现搜索结果包括自定义文章类型内容

作者 / 无忧主机 时间 2015-01-18 14:48:27

在前段时间,无忧小编在给自己php独立ip空间中的wordpress网站添加了一个公告的测试功能,旨在让用户更加了解本站的动态,也可以增加用户交流的强度。另一方面也可以记录本站的一些点点滴滴,某年某月某时还能感慨一下,哈哈……最近也发现有些用户反映表示需要搜索结果包括自定义文章类型内容的一个教程。那今天就出一个分享教程,其实网上已经有不少相关的教程了,甚至有些wordpress主题早已经内置了这个功能,然而大多数只是贴出代码出来却没有怎么讲到原理,所以今天无忧小编主要为大家讲讲在wordpress实现搜索结果包括自定义文章类型内容的方法。通过自定义函数的设置来实现WordPress搜索结果包括自定义文章类型,是非常实用的技巧,我们知道如果你在WordPress站点添加了自定义文章类型,这样在搜索结果中是看不到自定义文章类型的内容的,但要让搜索结果中看到自定义文章类型的内容也不难。如果你的WordPress站点添加了自定义文章类型,请记得让WordPress默认搜索支持自定义文章类型,即可以搜索自定义文章类型的内容,实现的方法很简单。 将下面的代码添加到主题的 functions.php 文件中即可. 让搜索支持自定义文章类型代码如下:

function searchAll( $query ) { 
if ( $query->is_search ) { $query->set( 'post_type', array( 'post','books', 'product','works' )); } 
return $query; 
} 
add_filter( 'the_search_query', 'searchAll' );
注意根据自己的实际修改第 3 行数组(array)中的文章类型别名. 或者也可以将下面的代码添加到当前主题的 functions.php 文件中: 以下代码的功能:让搜索结果支持所有自定义文章类型。
function include_post_types_in_search($query) {
if(is_search()) {
$post_types = get_post_types(array('public' => true, 'exclude_from_search' => false), 'objects');
$searchable_types = array();
if($post_types) {
foreach( $post_types as $type) {
$searchable_types[] = $type->name;
}
}
$query->set('post_type', $searchable_types);
}
return $query;
}
add_action('pre_get_posts', 'include_post_types_in_search');
以上这两种都是可行的。赶紧动手来试试吧。 无忧主机相关文章推荐阅读: WORDPRESS之视觉类主题介绍 WORDPRESS经验:网站首页权重如何集中起来 WORDPRESS之后台特色图片加上文件大小说明 WORDPRESS经验:给网站更换主题模板提示失败的解决方法

本文地址:https://www.51php.com/wordpress/18336.html

1
1
1
1
1
1
1