前言说明
WordPress内置搜索功能弱鸡已经不是什么秘密了, 搜索时搜索算法过于字面意义,在这篇文章中,我们会分享几个非常有用的WordPress搜索代码函数,它们将有助于提高用户的搜索准确性,对用户更加友好。
优化参考
如何从WordPress搜索结果中排除帖子或页面
如果您希望控制哪些文章或页面应从WordPress搜索结果中排除,您要做的就是将下面的代码复制并粘贴到functions.php文件中。
function SearchFilter($query) {
if ($query->is_search) {
$query->set('cat','0,1');
}
return $query;
}
add_filter('pre_get_posts','SearchFilter');
说明:在此代码段中,ID为0和1的文章将被排除。 进行相应的编辑以适合您的需求。
使用WordPress下拉分类搜索表单
您可以提供给WordPress搜索允许您的读者通过指定特定分类来筛选搜索结果。 这可以通过使用包含所有分类标题的简单下拉列表来实现。您所需要做的就是用以下代码段替换标准的WordPress搜索表单(在searchform.php中找到):
<form role="search" method="get" id="searchform" action="<?php bloginfo('siteurl'); ?>">
<div>
<label class="screen-reader-text" for="s">Search for:</label>
<input type="text" value="" name="s" id="s" />
in <?php wp_dropdown_categories( 'show_option_all=All Categories' ); ?>
<input type="submit" id="searchsubmit" value="Search" />
</div>
</form>
搜索特定的WordPress文章类型
您能够使用此小代码来让wordpress搜索特定的文章类型。您所要做的就是将下面的代码复制并粘贴到functions.php文件中。
function SearchFilter($query) {
if ($query->is_search) {
// Insert the specific post type you want to search
$query->set('post_type', 'feeds');
}
return $query;
}
// This filter will jump into the loop and arrange our results before they're returned
add_filter('pre_get_posts','SearchFilter');
用jQuery高亮显示WordPress搜索词
为了使您的搜索结果对读者来说更清晰一些,您可以使用此代码来高亮显示搜索结果中的搜索词。将以下代码复制并粘贴到主题的functions.php文件中。
function ie_set_query() {
$query = attribute_escape(get_search_query());
if(strlen($query) > 0){
echo '
<script type="text/javascript">
var ie_query = "'.$query.'";
</script>
';
}
}
function ie_init_jquery() {
wp_enqueue_script('jquery');
}
add_action('init', 'ie_init_jquery');
add_action('wp_print_scripts', 'ie_set_query');
然后将此代码添加到您的header.php文件中,位于/head标记之前:
<style type="text/css" media="screen">
.ie { background: #D3E18A; }
</style>
<script type="text/javascript">
jQuery.fn.extend({
highlight: function(search, insensitive, ie_class){
var regex = new RegExp("(<[^>]*>)|(\\b"+ search.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1") +")", insensitive ? "ig" : "g");
return this.html(this.html().replace(regex, function(a, b, c){
return (a.charAt(0) == "<") ? a : "<strong class=\""+ hls_class +"\">" + c + "</strong>";
}));
}
});
jQuery(document).ready(function($){
if(typeof(ie_query) != 'undefined'){
$("#post-area").highlight(ie_query, 1, "ie");
}
});
</script>
禁用WordPress搜索
如果您正在寻找一种禁用所有WordPress搜索功能的方法,则可以使用此代码。您所要做的就是将下面的代码复制并粘贴到functions.php文件中。
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
1.使用本站下载的源码仅限于个人学习和非商业用途。
2.禁止将本站下载的源码用于搭建或支持任何违法、淫秽、暴力或侵犯他人合法权益的网站或应用。
3.使用本站下载的源码需遵守国家法律法规及相关规定,不得从事任何违法活动。
4.如若本站内容侵犯了原著者的合法权益,请联系我们进行处理。
评论(0)