WordPress内的标准搜索功能太弱鸡已经不是什么秘密了。 问题在于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;" ) );
本文已在Ie主题由99839发布
文章来源:https://ietheme.com/5-useful-wordpress-search-code-snippets.html