web-dev-qa-db-ja.com

クエリを変更する投稿を取得する

taxonomy.phpページの投稿を変更する必要があります。私はメタ値と比較したいmeta_keyを持っています。しかし、現在私のコードは何も返していません。私は何かが足りないと確信しています。何がおかしいのか教えてください。

add_action('pre_get_posts', 'add_event_date_criteria');
function add_event_date_criteria(&$query)
{
    // We only want to filter on "public" pages
    // You can add other selections, like here:
    //  - Only on a term page for our custom taxonomy
    if (!is_admin() &&
        is_tax('event-tag') || is_tax('event-category')) {
        $query->set('meta_key', 'start_time');
        $query->set('meta_compare', '>=');
        $query->set('meta_value', time());
        $query->set('meta_key', 'start_time');
        $query->set('orderby', 'meta_value_num');
        $query->set('order', 'ASC');
    }

}
2
Sisir

Meta_queryパラメータを使ってみてください。

add_action('pre_get_posts', 'add_event_date_criteria');
function add_event_date_criteria(&$query)
{
    // We only want to filter on "public" pages
    // You can add other selections, like here:
    //  - Only on a term page for our custom taxonomy
    if (!is_admin() &&
        is_tax('event-tag') || is_tax('event-category')) {
        $time = time();
        $meta = array(
            array(
            'key' => 'start_time',
            'value' => $time,
            'compare' => '>='
            )
        );
        $query->set('meta_query',$meta );
        $query->set('meta_key', 'start_time');
        $query->set('orderby', 'meta_value_num');
        $query->set('order', 'ASC');
    }
}

また、あなたのメタフィールドstart_timeが、time()関数のようなUNIXエポック以来の秒数で測定され保存されることを確認する必要があります。

6
Bainternet