0
は私のクエリです:Wordpress WP_Query検索再開のページ。不要な検索語句ここ
$args = array(
'post_type' => $post_type,
'posts_per_page' =>-1,
'post_status' => 'publish',
'orderby' => 'meta_value_num',
'meta_key' => $order_key,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => $taxonomy1,
'field' => 'id',
'terms' => $type,
'operator'=> $type_operator,
'include_children' => false
),
array(
'taxonomy' => $taxonomy2,
'field' => 'id',
'terms' => $location,
'operator'=> $location_operator,
'include_children' => false
),
),
);
$query = new WP_Query($args);
var_dump($query);
しかし、私はのvar_dumpを確認したときに、ここにある:
object(WP_Query)#492 (48) {
["query"]=>
array(6) {
["post_type"]=>
string(12) "$post_type"
["posts_per_page"]=>
int(-1)
["post_status"]=>
string(7) "publish"
["orderby"]=>
string(14) "meta_value_num"
["meta_key"]=>
string(18) "$order_key"
["tax_query"]=>
array(3) {
["relation"]=>
string(3) "AND"
[0]=>
array(5) {
["taxonomy"]=>
string(20) "$taxonomy1"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "819"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
[1]=>
array(5) {
["taxonomy"]=>
string(18) "$taxonomy2"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "167"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
}
}
["query_vars"]=>
array(68) {
["post_type"]=>
string(12) "$post_type"
["posts_per_page"]=>
int(-1)
["post_status"]=>
string(7) "publish"
["orderby"]=>
string(14) "meta_value_num"
["meta_key"]=>
string(18) "$order_key"
["tax_query"]=>
array(3) {
["relation"]=>
string(3) "AND"
[0]=>
array(5) {
["taxonomy"]=>
string(20) "$taxonomy1"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "819"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
[1]=>
array(5) {
["taxonomy"]=>
string(18) "$taxonomy2"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "167"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
}
["date_query"]=>
bool(false)
["request"]=>
string(901) "SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_relationships AS tt1 ON (wp_posts.ID = tt1.object_id) INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) WHERE 1=1 AND (
wp_term_relationships.term_taxonomy_id IN (819)
AND
tt1.term_taxonomy_id IN (167)
) AND (
wp_postmeta.meta_key = '$order_key'
) AND wp_posts.post_type = '$post_type' AND ((wp_posts.post_status = 'publish')) AND (wp_posts.post_title LIKE '%$search%' OR wp_posts.ID IN (SELECT post_id FROM wp_postmeta WHERE meta_value LIKE '%$search%') OR wp_posts.ID IN (SELECT object_id FROM wp_term_relationships AS tr LEFT JOIN wp_terms AS t ON tr.term_taxonomy_id = t.term_id WHERE t.name LIKE '%$search%') OR wp_posts.post_content RLIKE '[[:<:]]$search[[:>:]]') GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value+0 DESC "
クエリの上にカスタムフックを使用して、検索結果ページ上で実行されています。しかし、私はユーザー(taxonomy1とtaxonomy2)によって与えられた入力に基づいてカスタム投稿タイプを表示しようとしています。これらの結果は、通常の検索結果の前に表示されます。
検索キーワードがWP_Queryに自動的に追加される以外はすべて問題ありません。私は議論の中に「s」を付いていませんでしたが、最終的な質問ではそこにあります。 WP_Queryに検索用語が含まれないようにする方法については、誰でも助けてください。
ありがとうございます。
** <?php wp_reset_postdata();を実行しましたか? ?> **あなたのスクリプトのどこに?おそらくあなたの質問の前後に? REF:*** https://codex.wordpress.org/Function_Reference/wp_reset_postdata*** – Poiz