2017-10-25 11 views
0

この質問に関するウェブで何も見つかりませんでした。 の後にの投稿を投稿する(投稿IDなど)投稿を得るには、WP_Query(または類似のもの)を使用する方法はありますか?特定の投稿の後に作成されたすべての投稿を取得します。

私は毎月先月のウォコムメスの注文報告をメールに送信するアプリケーションを構築する必要があるため、これは非常に正確です。 ありがとうございます!

+1

最初の投稿は「foo」と呼ばれています。 'foo'を問い合わせて、投稿された/公開された日付を取得するだけです。次に、別のクエリを実行し、 'wp_query'内の' after'キーで[date_query](https://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters)を使用します。前の 'foo'の' date_query''の 'after'値として返された日付を使います。それは 'foo'の投稿/公開日以降の投稿をすべて返します – ProEvilz

+0

@ProEvilzしかし、' foo'の後2秒で投稿が公開されるとどうなりますか?私はどちらかと思っていますが、「後」の最小単位は日です – Avishay28

答えて

0

最初にクエリを実行して、必要な参照記事を見つけ、公開日を取得します。あなたが原因単位の制限のパラメータ「後」を使用することはできません、あなたは可能な限り正確にしたい場合は、次のように$のwpdbでカスタムクエリを使用します。ここ

<?php 

$querystr = " 
    SELECT $wpdb->posts.* 
    FROM $wpdb->posts, $wpdb->postmeta 
    WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id 
    AND $wpdb->posts.post_status = 'publish' 
    AND $wpdb->posts.post_type = 'post' 
    AND $wpdb->posts.post_date > datepost 
    ORDER BY $wpdb->posts.post_date DESC 
"; 

$pageposts = $wpdb->get_results($querystr, OBJECT); 

?> 

さらに詳しい情報:https://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query

0

ターンそのうちのafterもUnixのtimestapを得ることができますので、私は、このコードで終わる:

$post_date = get_the_date('H-i-s-m-d-Y', $last_post_id); 
$units = explode('-', $post_date); 
$timestamp = mktime($units[0], $units[1], $units[2], $units[3], $units[4], $units[5]); 

$args = array(
    'date_query' => array(
     'after' => date('c', $timestamp) 
    ), 
    'posts_per_page' => -1 
); 

そして期待どおりに動作します。

関連する問題