このサイトはもちろん私が作ったテーマ【ha-Basic】を使っていて、この機能を追加してはいるのですが、まだサイトの歴史が浅いので表示される記事は一切ありません。その時が来たら・・・状態です。
さて、今回はタイトル通り、最終更新日から一定期間経過した記事へ自動でメッセージを表示する方法を紹介します。この方法で設置したものは↓の画像のようにメッセージが表示されます。
基本的な仕組みは
をご覧ください。
それでは早速始めましょう。
【ha-Basic】本文内の任意の場所へ自動で更新日の古い記事にメッセージを表示する方法
メッセージの準備
テキストエディタを開き、以下のコードをコピペしてください
<?php if ( date('U') - get_the_modified_time('U') > 60*60*24*180 ) { ?>
<div class="old-post-alert">
<p>この記事は<time class="entry-date date" datetime="<?php echo get_the_date( 'Y-m-d' ); ?>"><?php echo get_the_date(); ?></time>に公開され、<time class="update date" datetime="<?php echo get_the_date( 'Y-m-d' ); ?>"><?php the_modified_date(); ?></time>に最終更新されたもので、内容が古い可能性がありますのでご注意ください。</p>
</div>
<?php }?>
「modday-alert.php」というファイル名+拡張子名で保存してください。
この際文字コードを「UTF-8 BOMなし」にしないと動作しないので注意してください
文字コード?という方はこちら
ファイルができたらテーマフォルダへアップロードしましょう。
次に「a-insert-css.css」をテーマ編集(テーマエディタメニュー)から開き、以下のCSSコードを追記します
/****** 古い記事のお知らせ ******/
.old-post-alert {
background-color: #feffd9;
border: 1px solid #ffdc00;
border-radius: 8px;
padding: 10px;
margin-bottom: 20px;
}
.old-post-alert p {
margin-bottom: 0px;
}
これで前準備は完了です。
任意の記事へ自動的にメッセージを表示させたいときは
本文内へショートコードを挿入することで自動メッセージ機能が働くようになります。
挿入するショートコードは
[myphp file='modday-alert']
です。
ショートコードで任意の場所へ入れられるようにしたのは
- 全部の記事に表示されてしまうと普遍的な記事では不適切な表現となることがある
- テンプレート上では本文の上(下)にしか表示できないので、あまり効果的ではなさそう
なので。もしも全部の記事に適用させていいよ!という場合には↓の方法で設置してください
全部の記事へ自動的にメッセージを表示させたいときは
テーマ編集から「single.php」を開きます
37行目付近にある
<!--本文取得-->
というコメントの上に以下のコードを挿入します
<!--古い記事に対する案内-->
<?php echo do_shortcode("[myphp file='modday-alert']"); ?>
また通常のPHPコードである
<?php get_template_part('modday-alert');?>
を挿入しても動作します。