0

「ニュース」用に作成したカスタム投稿タイプの過去 8 か月のタブ付きアーカイブを作成できるようにする for ループ内で、Wordpress で次のカスタム クエリを使用しています。

これは完全に機能しますが、「古いニュース」という見出しの下にすべての古い投稿を表示したいと考えています。現在の日付から 8 か月以上経過した投稿を一度に分離する方法を理解するのに苦労しています。

これを可能にするカスタムクエリ構造について誰かアドバイスしてもらえますか。

関連するコンテナーに CPT を出力するために使用するコードを次に示します。

<?php for($i = $this_month-1; $i > $this_month-8; $i--) :
        if($i==-1){$m=11;}
        if($i==-2){$m=10;}
        if($i==-3){$m=9;}
        if($i==-4){$m=8;}
        if($i==-5){$m=7;}
        if($i==-6){$m=6;}
        if($i==-7){$m=5;}
        if($i==-8){$m=4;}
        else{$m=$i;}

        query_posts( array(
            'post_type' => 'news',
            'posts_per_page' => '-1',
            'orderby' => 'date',
            'order' => 'ASC',
            'monthnum'=>$m
        ) );  
.......
4

2 に答える 2

0

私はワードプレスについてあまり知りませんが、論理的にあなたを助けることができます。私の知る限り、これは、カテゴリ「古いニュース」の投稿を取得するときに、クエリで「WHEREcreation_date<8か月」などの条件をチェックすることで実行できます。したがって、最初に現在の日付を取得します。

<?php $today = date('Y-m-d'); ?>

次に、それから8か月を引くと、8か月前の日付になります

<?php $eight_month = date('Y-m-d',strtotime("-8 month $today")); ?> 

これで、クエリで$ 8_monthを使用できるため、クエリは次のようになります。投稿用にデータベースに保存している日付の形式を確認し、形式「Ymd」と異なる場合はそれに応じて変更してください

"SELECT*FROM投稿WHEREcreation_date<'$ 8_month'"

これがあなたが望むものであり、あなたのプロジェクトであなたを助けることを願っています。頑張って、良い一日を

于 2012-08-21T08:36:08.460 に答える