0

現在、Wordpress で検索を設定しようとしていますが、現在クエリ内の検索用語が失われているため問題が発生しています。これは、WP クエリを設定するのではなく、新しいクエリを実行しているためだと思います。

現在の問題

現在、次のコマンドを実行しています (タクソノミーfeaturelocation検索語を検索する例です。

if ($s_feature != "" && $s_location != "")
    {
        $s_feat_array = array(
            'taxonomy' => 'feature',
            'terms' => array($s_feature),
            'field' => 'slug',
            'relation' => 'AND',
            );
        $s_loc_array = array(
            'taxonomy' => 'location',
            'terms' => array($s_location),
            'field' => 'slug',
            );
        $housequery['tax_query'] = array(
            'relation' => 'AND',
            'orderby' => 'title',
            'order' => 'ASC',
            $s_feat_array,
            $s_loc_array
        );
        query_posts($housequery);
    }

残念ながら、これは送信された検索語やその他のクエリを検索するものではありません。

私の試み

$queryしたがって、新しいコマンドを実行するのではなく、「設定」する必要があると思います。次のコードが機能することを確認しました。

$query->set('post_type',array('houses'));

ただし、次のようにクエリを変更しようとしましたが、代わりに致命的なエラーが発生しました (非オブジェクトのメンバー関数への呼び出し):

$query->set(array('taxonomy','location','terms',
array($s_location),'field',array('slug')));

本当にかなり困惑していますが、配列が正しく構造化されていないことに関係していると思いますので、どんな助けでも大歓迎です。

4

1 に答える 1

0

$housequery['tax_query']インデックス tax_query の配列内の項目です。次に、それを配列にします。ただし、query_posts を呼び出すときは、参照しません$housequery['tax_query']

query_posts($housequery['tax_query']);可能であれば、tax_query を完全に削除するか、試してください。

$housequery = array(
            'relation' => 'AND',
            'orderby' => 'title',
            'order' => 'ASC',
            $s_feat_array,
            $s_loc_array
        );
于 2012-08-11T18:12:48.480 に答える