複数 検索語の場合。 ?s=hello+world
Wordpressの仕事を見つける "こんにちは世界" the_title
、the_content
投稿のように!
Hello Anna
wordpressが1つの結果を得ないならば、そして! すべてのキーを使いたい:
"こんにちは世界" 、 "こんにちは" 、 "世界"
たぶん array('hello world','hello','world');
しかし、それは私の経験を超えています!それは単一のループ内でクエリを分割し、複数のクエリを送信することができるかもしれませんか?この問題を解決できる人はいますか? 例えば ?s=
、$_GET
何かが複数のクエリに対してより多くの結果を呼び出すのが好きだったにちがいありません!
修正:すべてのキーを検索して結果を出す。
<?php
$the_keys = preg_split('/\s+/', str_replace('-',' ',get_query_var('s')),-1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
$total_keys = count($the_keys);
$the_query = new WP_Query(array('post_type'=>'nothing'));
if($total_keys>1){
for($i = 0; $i<=$total_keys; $i++) {
$the_query_mask = new WP_Query(array('s' => $the_keys[$i]));
$the_query->post_count = count( $the_query->posts );
$the_query->posts = array_merge( $the_query->posts, $the_query_mask->posts );
}
} else {
$the_query= new WP_Query(array('s' => get_query_var('s')));
}
if ($the_query->have_posts()) : ?>
注意:'post_type'=>'nothing'
配列のマージが必要です。
多分私のような人がファジィ論理結果が欲しいのです
私はこのようにして解決しました:"search.php
"
<?php
$the_keys = preg_split('/\s+/', get_query_var('s'),-1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
$total_keys = count($the_keys); // Count the search term
$the_query = new WP_Query(array('s' => get_query_var('s')));
// IF have multiple term and havent a result
if($total_keys > 1 && $the_query->post_count < 1){
// Loop for total term count, if found post break it! <3
for($i = 0; $i < $total_keys; $i++) {
//Set the new array term value
$the_query = new WP_Query(array('s' => $the_keys[$i]));
//if found post break it! <3
if($the_query->post_count>0) break;
}
}
// List of my Level 2 filter posts :)
if ($the_query->have_posts()) : ?>
......
<?php
endwhile;
endif;
?>
通常:
?s=hello+baby
=> 真実を見つける?s=hello
=> 真実を見つける?s=baby
=> 真実を見つける?s=hello+whats+up
=> 偽を見つける?s=hey+baby
=> 偽を見つける検索、今すぐ作業し、eg?s=hello+whats+up
=> trueを検索を見つける