web-dev-qa-db-ja.com

2つのカスタムフィールドを使用したカスタム投稿タイプのクエリ(日付範囲)

WP CodexとStackExchangeを検索していくつか手がかりを得ましたが、このクエリが機能しているとは言えません。展覧会の開始日をexstart-date、終了日をexend-dateとしたY-m-d形式で、各展覧会に関連付けられた2つのカスタムフィールドがあります。

今後の展示や過去の展示を簡単に表示することはできますが、現在の展示を表示するmeta_query権を取得できません(開始日が今日以下、終了日が今日以上)。以下のコードはページに何も表示しません。助けて?

$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$today = date('Y-m-d', strtotime('-6 hours'));
query_posts(array(
    'post_type' => 'exhibitions', 
    'posts_per_page' => 6, 
    'paged' => $paged,
    'orderby' => 'title',
    'order' => 'DESC',
    'meta_query'=>array(
        'relation'=>'AND',
        array(
            'key' => 'exstart-date',
            'value' => $today,
            'compare' => '<=',
            'type' => 'CHAR'
            ),
        array(
            'key' => 'exend-date',
            'value' => $today,
            'compare' => '>=',
            'type' => 'CHAR'
            )
        )
    ));
if (have_posts()) :
while (have_posts()) : the_post();
4
Ray Gulick

これは私がその作品で終わったコードです。私はそれがMindshare StudiosのDamian Taggartに見せたとき、彼が私がquery_postsの代わりにWP_Queryを使うべきであると言ったことに気づいたので、私は質問がループの中にあったことを述べたべきです。すべての必要な情報を持たずに私を助けようとしてくれたMiloらに感謝します。

<?php
     $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
     $today = date('Y-m-d', strtotime('-6 hours'));
     $myquery = new WP_Query(array(
     'post_type' => 'exhibitions', 
     'posts_per_page' => 6,  
     'paged' => $paged,
     'orderby' => 'title',
     'order' => 'ASC',
     'meta_query'=>array(
            'relation'=>'AND',
            array(
                'key' => 'exstart-date',
                'value' => $today,
                'compare' => '<=',
                'type' => 'CHAR'
            ),
            array(
                'key' => 'exend-date',
                'value' => $today,
                'compare' => '>=',
                'type' => 'CHAR'
            )
        )
    ));
    if ($myquery->have_posts()) :
    while ($myquery->have_posts()) : $myquery->the_post();
?>
2
Ray Gulick