9

これで実用的な解決策を得るのに苦労していますwp_query。現在、投稿に割り当てられているカスタム設定がいくつかあります.1つは投稿が「注目」されているかどうか、2つ目は投稿が終了する日時です(結果に表示されなくなりました)。この機能を使用するクエリがありますが、この終了日をそれに組み込む必要があるだけです。「機能」を使用して検索するクエリは次のとおりです。

WP_Query('meta_key=skyali_feature&showposts=4&orderby=post_date');

終了日は「the_date」でwp_postmeta表に設定され、「05/16/2013 05:24」のようになります。「the_date」が設定されている場合、「the_date」が今日の日付と時刻よりも大きい場合にのみ投稿が含まれる上記のクエリを編集したいと思います。meta_keymeta_values

これが私の失敗した試みです:

WP_Query(
   'meta_key=skyali_feature&meta_key=the_date&meta_compare=>=&meta_value='
   .date('d/m/Y H:i')
   .'&showposts=4&orderby=post_date&orderby=the_date'
);
4

3 に答える 3

4

日付データ型で高度なカスタム フィールド プラグインを使用している場合、今日以降の日付に必要なものは次のとおりです。

    $today = date('Ymd');
    $args = array(
        'post_type' => 'post',            
        'meta_key' => 'end-date',
        'meta_query' => array(
            array(
                'key' => 'end-date'
            ),
            array(
                'key' => 'end-date',
                'value' => $today,
                'compare' => '>='
            )
        ),
        'orderby' => 'meta_value',
        'order' => 'ASC'
    );
   $your_custom_query = new WP_Query($args);
于 2013-10-07T14:12:23.373 に答える
1

カスタム メタデータ マネージャーを使用している場合、datepickerフィールドがタイムスタンプとして保存されていることがわかります。

したがって、同様のケースでは、上記の例は機能せず、比較する必要がある値を php に分類させることができます。そして、1 日前の 23:59:59 のタイムスタンプは、次のように機能します。

    $yesterday = strtotime('yesterday 23:59:59');
    $args = array(
        'post_type' => 'post',            
        'meta_key' => 'end-date',
        'meta_query' => array(
            array(
                'key' => 'end-date'
            ),
            array(
                'key' => 'end-date',
                'value' => $yesterday,
                'compare' => '>='
           )
        ),
        'orderby' => 'meta_value',
        'order' => 'ASC'
    );
    $your_custom_query = new WP_Query($args);

ブログのタイムゾーン設定も考慮したい場合は、次の例のようにcurrent_time()を使用します。

    $now = current_time('timestamp');
    $yesterday = mktime(23, 59, 59, date('n',$now), date('j',$now)-1);
于 2014-03-29T14:51:54.523 に答える