Wordpressのデフォルトの検索モジュールをカスタマイズできるかどうかを知りたいのですが。私はチームとチームのニュースを扱うWebサイトです。
これらのチームの中には、名前が次のように書かれているものもあります。
私はHMS、またはLA Dreamのような文字列を探しても、検索モジュールが結果でそれらのチームを管理できることを望みます。ドットで文字を埋める代わりに、またはNY。誰かがいくつかの提案を持っていますか、または現時点で私が気づいていないというWPトリックを知っていますか?
前もって感謝します
これは、request
フィルタを使用して、ドットを含まない2文字または3文字の「ドット付き」単語を現在の検索語に追加するというアイデアです。
だからあなたの検索文字列が例えばであれば:
LAの夢
それはになります:
LAの夢L.A.
これがデフォルトの検索を修正するデモプラグインです。
<?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;
});
あなたはうまくいけばあなたのニーズにこれをさらに拡張することができます。