カスタム クエリを使用した高度な検索の作成と使用に問題があります。$wpdb->get_results($query , OBJECT);
xxx yyyy
検索または検索するときのワードプレスの通常の検索では、yyyy xxx
同じ結果が得られ、それは良いことです。しかし、クエリを使用して高度な検索を作成する必要がある場合、検索フィールド内の一連の単語が重要であり、それ xxx yyyy
以上検索yyyy xxx
すると同じ結果になりません。例を挙げて言いたい: 投稿のタイトル用と作成者用の 2 つの入力フィールドを作成します (作成者は単なる例であり、この場所はカスタム フィールドです)。これらのフィールドを読み取って、ワードプレスで検索しようとしています
<?php
$t = $_REQUEST['title'];
$a = $_REQUEST['author'];
global $wpdb;
$query = "SELECT DISTINCT wp_posts.* FROM wp_posts, wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id";
if ($t != '') {
$t_sql = " AND wp_posts.post_title like '%$t%' ";
}
if ($a != '') {
$a_sql = " AND wp_postmeta.meta_key = 'Author' AND wp_postmeta.meta_value like '%$a%' ";
}
$query .= $t_sql;
$query .= $a_sql;
$pageposts = $wpdb->get_results($query , OBJECT);
global $post;
if ($pageposts):
foreach ($pageposts as $post):
setup_postdata($post);
//...
endforeach;
endif;
?>
あなたの考えでは、私は何をしなければなりませんか?