我想知道是否可以自定义Wordpress的默认搜索模块。我有一个处理团队和团队新闻的网站。
有些球队的名字是这样写的
我希望搜索模块能够在搜索结果中管理这些团队,即使我查找字符串如下HMS, 或LA Dream, 或NY, 而不是用点填充字符。有没有人有什么建议,或者知道目前我还不知道的WP技巧?
提前感谢
我想知道是否可以自定义Wordpress的默认搜索模块。我有一个处理团队和团队新闻的网站。
有些球队的名字是这样写的
我希望搜索模块能够在搜索结果中管理这些团队,即使我查找字符串如下HMS, 或LA Dream, 或NY, 而不是用点填充字符。有没有人有什么建议,或者知道目前我还不知道的WP技巧?
提前感谢
request
筛选将不包含任何点的两个或三个字符的“虚线”单词附加到当前搜索词中。因此,如果您的搜索字符串是,例如:
洛杉矶之梦
它将成为:
洛杉矶之梦洛杉矶。
以下是修改默认搜索的演示插件:
<?php
/**
* Plugin Name: Search Terms Dotifier
* Author: birgire
* Plugin URI: http://wordpress.stackexchange.com/a/157972/26350
* Version: 0.0.1
*/
add_filter( \'request\', function( $request ) {
if( ! is_admin() && isset( $request[\'s\'] ) )
{
// Dont\' dotify these words (lower case):
$exclude = array( \'the\', \'in\', \'it\', \'he\', \'she\', \'was\' );
// Loop over search terms:
$words = explode( \' \', $request[\'s\'] );
foreach( (array) $words as $word )
{
// Words with two or three chars that don\'t contain any dots:
if( mb_strlen( $word ) > 1
&& mb_strlen( $word ) < 4
&& false === strpos( $word, \'.\' )
&& ! in_array( mb_strtolower( $word ), $exclude, true )
)
{
// Append the \'dotted\' word:
$words[] = join( \'.\', str_split( $word ) ) . \'.\';
}
}
$request[\'s\'] = join( \' \', $words );
}
return $request;
});
希望您能将此扩展到您的需要。我试图显示来自常规帖子部分和自定义帖子类型的最新帖子,从每个自定义帖子类型中排除一个自定义分类术语。但是最近的帖子部分没有显示任何内容。 <?php // the query $the_query = new WP_Query( array( \'post_type\' => array( \'post\', \'miss_behave\', \'emily_davies\',\'gemma_patel\',\'poppy