[WordPress] サイドバーに経過日数を表示する
WordPress で指定日からの経過日数を表示したくなった。そういうことができるプラグインがパッと見つからなかったので、プラグインを使わない方法に挑戦してみた。
それはウィジェット上で PHP コードを使えば実現できる。
(1)DateCounter.php という以下のようなファイルを作成する。
1<?php
2//指定日
3$date="2019/04/01";
4date_default_timezone_set("Asia/Tokyo");
5//日数表示
6echo '今日は 2019/4/1 から数えて ';
7echo ceil((time() - strtotime($date))/(24*60*60));
8echo ' 日目です。';
(2)現在のテーマの functions.php に以下を追記する( <?php 〜 ?> の間に追記する)。
1{
2add_filter( 'widget_text', function( $ret ) {
3 $php_file = 'DateCounter';
4
5 if( strpos( $ret, '[' . $php_file . ']' ) !== false ) {
6 add_shortcode( $php_file, function() use ( $php_file ) {
7 get_template_part( $php_file );
8 });
9
10 ob_start();
11 do_shortcode( '[' . $php_file . ']' );
12 $ret = ob_get_clean();
13 }
14
15 return $ret;
16}, 99 );
17}
(3)1と2のファイルを /wp-content/themes/[現在のテーマ] へアップロードする。
(4)「テキスト」ウィジェットを追加し、[DateCounter] というショートコードを入力、保存。
これでサイトバーに経過日数が表示されるようになった。
参考:
経過日数を表示する方法
https://imakat.com/2016/08/17/3549/
WordPress でプラグイン使わずにウィジェットで PHP コード動かす | Thought is free
https://thk.kanzae.net/net/wordpress/t6358/
ウィジェットでphpを呼び出したい!ショートコードを設定してphpを読み込ませる方法! | 知りたいねっと
https://shiritai.net/widget-shortcode/