【WordPress】バナー画像をタイマー設定で切り替える・非表示方法

WordPress(ワードプレス)で、TOPページなどに埋め込んだバナーではなく「バナーを含む記事」をタイマー設定で表示・非表示したい場合は記事のタイマープラグイン「Post Expirator」だと上手くいかないので、直接PHPで制御する方法しか見つかりませんでした。

カスタマイズしたTOPページに配置したバナーやバナーを含む記事を、htmlがわからないクライアントさんでも更新できるように下記のコードで「固定ページを更新するだけでいい状態」にします↓↓↓

<?php
$page_id =xxx; //xxxに 固定ページIDを入力
$content = get_page($page_id);
echo apply_filters('the_content', $content->post_content);
?>

その内容を、タイマー設定で表示・非表示にしたいというのが今回の要望。

その場合、その固定ページをタイマープラグイン「Post Expirator」で非表示にすればいいんじゃないかなと思ったのですが↓↓↓

参考:Post Expirator

そもそものコードが「固定ページの内容を表示する」だけで、その記事が表示だろうが非表示だろうが関係なく表示するもののようなので上手くいかず。

下書きの場合は表示させないコードに変えれば解決しそうですが、当方PHPがよくわかっていないので他の方法はないかなと。

最終的に、タイマーで分岐してくれるPHPタグを合わせることで解決しました↓↓↓

<?php
date_default_timezone_set('Asia/Tokyo');
if ($_GET[nt] != "") { $now_time = $_GET[nt]; }else{ $now_time = date('YmdHi'); }
if ($_GET[ct] != "") { $change_time = $_GET[ct]; }else{ $change_time = "201805282300"; }
//echo "now_time:" . $now_time . "<br />";
//echo "change_time:" . $change_time . "<br />";
?>

<?php
if ($now_time <= $change_time) {
?>
//タイマー時刻まで表示するもの
<?php
$page_id = xxx; //xxxに 固定ページIDを入力
$content = get_page($page_id);
echo apply_filters('the_content', $content->post_content);
?>
<?php } else {
?>
//タイマー時刻を過ぎた後に表示するもの
<?php } ?>

参考:[php] 簡単なコンテンツ公開タイマー、その1

上記ですと、タイマー設定の時間(201805282300=2018年5月28日23時00分)まで固定ページxxxを表示して、時間以降は何も表示しないという内容です。

アレンジすれば、内容の切り替えなどもできますね。

しかし、タイマーの時間設定はコードを直接いじらないといけないです。

良いプラグインが見つかれば情報いただけると嬉しいです。

よろしくお願いします。

Byさちお

\ SHARE /