[WordPress] サイドバーに経過日数を表示する
WordPress で指定日からの経過日数を表示したくなった。そういうことができるプラグインがパッと見つからなかったので、プラグインを使わない方法に挑戦してみた。
それはウィジェット上で PHP コードを使えば実現できる。
(1)DateCounter.php という以下のようなファイルを作成する。
<?php
//指定日
$date="2019/04/01";
date_default_timezone_set("Asia/Tokyo");
//日数表示
echo '今日は 2019/4/1 から数えて ';
echo ceil((time() - strtotime($date))/(24*60*60));
echo ' 日目です。';
(2)現在のテーマの functions.php に以下を追記する( <?php 〜 ?> の間に追記する)。
{
add_filter( 'widget_text', function( $ret ) {
$php_file = 'DateCounter';
if( strpos( $ret, '[' . $php_file . ']' ) !== false ) {
add_shortcode( $php_file, function() use ( $php_file ) {
get_template_part( $php_file );
});
ob_start();
do_shortcode( '[' . $php_file . ']' );
$ret = ob_get_clean();
}
return $ret;
}, 99 );
}
(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/
Recent Posts
Archives