WordPressで日替わりコンテンツを表示する

2018年7月29日

概要

日替わりコンテンツを表示できると、ブログ記事を更新していない日にも「更新されている感」を出すことができる。

365日分の日替わりコンテンツを用意しておいて読者が毎日ブログを訪れる理由を作ろう。

カスタムフィールドの設定

まずは日付で検索するための値を記事に設定していく。

記事投稿画面・右上の「表示オプション」で「カスタムフィールド」にチェックをつける。

記事投稿画面の下のほうにカスタムフィールドを設定するエリアが表れる。

ここに月(month)と日(day)の項目を設定する。

ただ大量の記事1つ1つに日付を設定するのは大変なので、CSV Impoterなどを使って一括記事投稿をするといいだろう。

 

表示部分実装

設定したカスタムフィールドの記事を検索して表示する。

注意点としては今日の月日を取得するときにはphp組込み関数の

date()
ではなく、Wordpress組込み関数の
date_i18n()
を使用すること。

これによってWordpressで設定したタイムゾーンに合わせた日付での検索が可能になる。

<?php
// デイリー
$args = array(
    'meta_query' => array(
        array(
            'key' => 'day',
            'value' => date_i18n('j'),
            'compare' => '='
),
        array(
            'key' => 'month',
            'value' => date_i18n('n'),
            'compare' => '='
        )
    )
);
$daily_posts = get_posts($args);
?>
<?php if (!empty($daily_posts)) : ?>
<section>
<h2>デイリーピックアップ</h2>
<?php foreach ( $daily_posts as $post ) : setup_postdata( $post ); ?>
<article>
<h3><ahref="<?phpthe_permalink(); ?>"><?phpthe_title(); ?></a></h3>
<p><ahref="<?phpthe_permalink(); ?>"><?phpthe_post_thumbnail('post-thumbnails-index'); ?></a></p>
<p><?phpget_template_part('parts/post-date'); ?><?phpthe_category(', '); ?></p>
</article>
<?php endforeach;?>
</section>
<?php endif; ?>
<section>

カテゴリー: ワードプレス

« | »

シェア・保存

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です