1

get_posts() の結果を日付で制限したいのですが、次を使用してみましたが、うまくいきません...

これを正しく行っているかどうか誰にも教えてもらえますか? そして、なぜ期待どおりに機能しないのですか?

add_filter( 'posts_where', 'filter_dates_between' );

$args=array(
        'post_type'=>'log',
        'suppress_filters' => false,
        'post_status'=>'private',
        'numberposts'=> -1,
        'meta_key'=>'_wpcf_belongs_agent_id','meta_value'=>$agentId);

$logs=get_posts($args);

remove_filter( 'posts_where', 'filter_dates_between' );

ここにフィルター機能があります

function filter_dates_between( $where =''  ) {
                global $dateFrom,$dateTo,$wpdb;

                $where .= $wpdb->prepare( " AND post_date >= %s", $dateFrom );
                $where .= $wpdb->prepare( " AND post_date <= %s", $dateTo );

                return $where;
    }
4

1 に答える 1

0

あなたのコードは良いです。問題は、文字列のように扱われる日付を渡すことにあると思います。

最後に、この例の形式であることを確認してください

    "AND post_date >= '2009-03-01' AND post_date <= '2009-03-15'"

または単に

    "AND cast(post_date as datetime) between cast... AND cast...
于 2012-08-15T12:38:34.627 に答える