• 解決済 try_kuro

    (@try_kuro)


    初めて投稿いたします。
    現在、カスタム投稿を複数作成して、
    トップページ(固定ページ)に1日の投稿数を表示させようとしています。

    ・カスタム投稿A,B,Cを作成
    ・トップページにニュース一覧として、
    「Aをn件追加しました」「Bをn件~」のように表示させたい。
    リンクはカスタム投稿のアーカイブへのリンクを設定すればよいので問題なし。

    ・wp_post_countでは単純に総投稿数を取得できるだけのようでした

    <ul class="newslist_top">
    
        <li>
        <span class="category"><?php echo esc_html(home_url('A')) ;?></span>
        <span class="time"><?php echo date_i18n( 'Y.n.j' ); ?></span>
        Aをn件更新しました。
        </li>
        B...
        C...
    </ul>

    数日間検索とフォーラムで一通り調べましたが解決できず。。。
    お力添えをしていただければと思います。

    不明な点や必要な情報があれば迅速にお答えします。
    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • wp_queryに検索条件(日付とカスタム投稿名)
    を入力してfound_postsで取得できないでしょうか?

    トピック投稿者 try_kuro

    (@try_kuro)

    ご回答ありがとうございます。
    実はちょうど先程解決いたしまして。

    <?php $today = getdate(); ?>
    
    <?php
        $args = array(
            "post_type" => 'A',
            'date_query' => array(
                array(
                    'year'  => $today["year"],
                    'month' => $today["mon"],
                    'day'   => $today["mday"],
                ),
            ),
            "posts_per_page" => 9999,
        );
        $query = new WP_Query($args);
        $get_num = $query->post_count;
    ;?>
    <?php if ( $get_num >= 1 ) :?>
    <li><span class="category"><a href="<?php echo esc_html(home_url('A')) ;?>">A</span></a><span class="time"><?php echo date_i18n( 'Y.n.j' ); ?></span><a href="<?php echo esc_html(home_url('A')) ;?>">Aを<?php echo esc_html( $get_num );?>件更新しました。</a></li>
    <?php else :?>
    <?php
    $args2 = array( 'posts_per_page' => 1, 'post_type' => 'A' );
    $myposts = get_posts( $args2 );
    foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
    <?php
        $args = array(
            "post_type" => 'A',
            'date_query' => array(
                array(
                    'year'  => get_post_time('Y', true),
                    'month' => get_post_time('n', true),
                    'day'   => get_post_time('j', true),
                ),
            )
        );
        $query = new WP_Query($args);
        $get_num = $query->post_count;
    ;?>
        <li><span class="category"><a href="<?php echo esc_html(home_url('A')) ;?>">A</span></a><span class="time"><?php echo get_post_time( 'Y.n.j' ); ?></span><a href="<?php echo esc_html(home_url('A')) ;?>">Aを<?php echo esc_html( $get_num );?>件更新しました。</a></li>
    <?php endforeach;
    wp_reset_postdata();?>

    wp_queryにdate_queryなるものがあったのですね。。。
    以前試した記憶があるのですが、恐らく書き方が悪かったのだと思います。

    ・wp_queryで今日の投稿を取得
    ・$query->post_countで投稿数を取得
    ・投稿数が1以上に限り表示、それ以外は最新の投稿を取得してその日付の投稿数を取得

    カスタム投稿は3つなので、このコードを3つ書いており、
    我ながらスマートなやり方ではないなと思いつつも、
    ひとまずは解決したのでこちらで解決済みとさせていただきます。

    ご回答いただいた方々、誠にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「複数のカスタム投稿の一日の投稿数をそれぞれ取得して表示させたい」には新たに返信することはできません。