サポート » 使い方全般 » 過去の同じ日の記事を出したくて

  • 解決済 nojiriko0519

    (@nojiriko0519)


    お世話様です。カスタム歴の浅い初心者です。よろしくお願いします。
    早速で恐縮なのですが、自分のブログの過去の同じ日の記事を訪問者に読んでもらいたく、ヒントを色々と探してみたのですがなかなか見つからず、唯一見つけたものが以下
    <?php
    $today = getdate();
    query_posts( ‘monthnum=’ . $today[“mon”] . ‘&day=’ . $today[“mday”] . ‘&orderby=date&order=DESC’ );
    ?>
    <?php while (have_posts()) : the_post(); ?>
    <b><?php the_time(“Y年n月j日”); ?></b> “><?php the_title(); ?><br />
    <?php endwhile;?>
    <?php wp_reset_query();?>
    というもので、やってみたところ上手く表示されましたのでゴールとしてはこれでも良いのですが、非推奨とされる「query_posts」だったため、get_postsやwp_get_archivesで同じことができないかと試行錯誤してみたのですが上手くいかないという有様でございます。
    できれば非推奨ではない形式で運営したく、なんとかお力を貸していただけませんでしょうか。

    出力したいのは、見出しとその日を除いた過去3年間の同じ日付の投稿タイトル(リンク付)です。記事がない場合は空白で構いません。
    また、出来れば特定のカテゴリの記事を弾けるとありがたいのですが…。
    イメージ例)
    <h2>過去の今日はこんな記事を書いてました</h2>
    2018年○月○日 ○○タイトル○○
    2017年○月○日 ○○タイトル○○
    2016年○月○日 ○○タイトル○○

    まったくの他力本願になってしまいお恥ずかしい限りなのですが、よろしければ教えていただければと思います。
    よろしくお願いします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • 
    <?php
    $month = get_the_time('m');
    $day = get_the_time('d');
    $args = array(
    	'posts_per_page' => -1,
    	'post_type' => 'post',
    	'post_status' => 'publish',
    	'date_query' => array(
    		'month' => $month,
    		'day'   => $day,
    	)
    );
    $query = new WP_Query( $args );
    ?>
    <h2>過去の今日はこんな記事を書いてました</h2>
    <?php while ( $query->have_posts()) : $query->the_post(); ?>
    <p><a href="<?php the_permalink(); ?>"><?php the_time("Y年n月j日"); ?><?php the_title(); ?></a></p>
    <?php endwhile;?>
    

    よく読んでませでした。
    無視してください。

    トピック投稿者 nojiriko0519

    (@nojiriko0519)

    manboさん、ありがとうございます!
    早速試してみましたところ、投稿ページ内がそれだけ(呼び出した過去記事の日付とタイトル)になってしまい、加えて書き出した過去の記事の最後の記事の本文まで呼び出してしまっていました。
    そこで最後の行に<?wp_reset_postdata();?>を入れてみたところ、望みどおりの結果となりました!
    自分で考えても全く分からなかったのに、こうして教えてもらったものを読むとなんとなくですが理解できるものですね。
    大変勉強になりました。ありがとうございました。
    またお伺いすることがりましたらよろしくお願いいたします。

    トピック投稿者 nojiriko0519

    (@nojiriko0519)

    解決したと思ったのですがすみません、勘違いでした…。
    解決済みにしてしまったのでもう一度投稿してもいいものなのでしょうか…?

    「解決済み」ステータスは、後から変更することができますよ。同じ質問であればステータスを「未解決」にするといいかと思います。

    トピック投稿者 nojiriko0519

    (@nojiriko0519)

    ishitakaさん、ありがとうございます!
    未解決に更新できるとは知りませんでした。助かります。

    こんな感じではどうでしょうか。

    <?php
    list( $year, $month, $day ) = explode( ',', date_i18n( 'Y,n,j' ) );
    $args = array(
    	'posts_per_page' => -1,
    	'post_type' => 'post',
    	'post_status' => 'publish',
    	'date_query' => array( array(
    		'after' => array(
    			'year' => $year - 4,
    			'month' => $month,
    			'day' => $day,
    		)
    	) ),
    	'monthnum' => $month,
    	'day' => $day
    );
    $query = new WP_Query( $args );
    echo '<h2>過去の今日はこんな記事を書いてました</h2>';
    if ( $query->have_posts() ) {
    	while ( $query->have_posts() ) { $query->the_post();
    		?>
    		<p><a href="<?php the_permalink(); ?>"><?php the_time("Y年n月j日"); ?><?php the_title(); ?></a></p>
    		<?php
    	}
    	wp_reset_postdata();
    }
    ?>
    トピック投稿者 nojiriko0519

    (@nojiriko0519)

    ishitakaさん重ねてありがとうございます!

    完璧ですね!
    あまり需要のない仕組みなのか、参考になる他の方の実例がなく、自分の実力では考え出せず困っておりました。
    ご返信も遅くなりまして申し訳ありません。いただいた御恩は私のブログを見たいただける皆さんにお返しできる形になればいいなと思います。

    ありがとうございました。
    またどうしても今の自分の力ではどうにもならなそうなことがありましたらこちらでご相談させていただこうと思います。

    その際はまたよろしくお願いします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「過去の同じ日の記事を出したくて」には新たに返信することはできません。