WordPressのプラグインでACFをよく使うけど、「日付選択ツール」の出力形式をもっと自由に調整したいなあ……
今回はこのようなお悩みをお持ちの方に向けて、WordPressのプラグインのひとつ
ACF(Advanced Custom Fields)の日付選択ツールの出力形式を自由に調整する方法
について解説します。
ACFは誰でも簡単にカスタムフィールドの追加・編集を可能にする、WordPressプラグインのひとつです。
カスタムフィールドを自作しようとすると、functions.phpに何行ものコードを記述する必要があり手間がかかりますが、ACFを利用することで簡単に様々な種類のカスタムフィールドを導入できます。
今回の記事で解説するのは、ACFで設定可能なカスタムフィールドの内、「日付選択ツール」に関する内容です。
ACFで設定したカスタムフィールドの値を出力するときの基本形
ACFを使用するとカスタムフィールドを簡単に設定することが可能ですが、その際、編集ページで入力・保存された値を実際にページ上へ出力するためにはテンプレートファイルにプログラムを記述する必要があります。
例えば、「日付選択ツール」における基本的な設定・出力用プログラム・出力結果は以下の通りです。
基本的な設定
出力用のプログラム
<?php
if(get_field('date')) {
the_field('date');
}
?>
get_field(‘date’)……カスタムフィールド[date]の値を取得する
the_field(‘date’)……カスタムフィールド[date]の値を出力する
出力結果
ACFの「日付選択ツール」の基本設定機能では実現できないこと
しかし、例えば以下のように「年」と「月日」を分割して出力するといったことは、標準の設定機能だけでは実現することができません。
「年」と「月日」を分割して出力する
ACFの「日付選択ツール」で出力形式を自由に調整する方法
先ほどのように「年月日」を別々に出力したい場合には、ACFから取得した日付情報をPHPの処理で分割する必要があります。
以下は「年月日」を「年」と「月日」に分割して出力するコードです。
<?php
if(get_field('date')) {
// 日付情報を取得
$dateStr = get_field('date');
/* *** 年月日を分割する ***
* ACFの設定で出力形式(戻り値の形式)を「Y/m/d」という形で「/」区切りにしておき、
* その区切り文字「/」を利用してexplode関数で分割している
*/
$dateStr = explode("/",$dateStr);
// 分割した「年月日」をそれぞれの変数に格納
$year = $dateStr[0];
$month = $dateStr[1];
$day = $dateStr[2];
// 月日の出力
echo $month . '月' . $day . '日';
echo '<br>';
// 年の出力
echo $year . '年';
}
?>
このような処理を記述することで、以下のように年月日を分割した出力が実現可能です。
また、「05」というような0埋めを無くしたいときには、以下のようにintval関数で年月日情報を数値型に変換すればOKです。
0埋めを無くしたいときはintval関数を使用
<?php
if(get_field('date')) {
~ 中略 ~
// 月日の出力
echo intval($month) . '月' . intval($day) . '日';
~ 中略 ~
}
?>
PHPも活用すればACFの出力形式も自由自在
以上がACFの「日付選択ツール」の出力形式を自由に調整する方法でした。
WordPressのプラグインは便利ですが、今回お伝えしたように、ほとんどの場合は何かしら機能的な制限があります。
そのようなときにPHPの標準的なプログラムを活用することでできることの幅が一気に広がります。
今回はその中の一例について解説してみました。
この記事がお役に立ったなら何よりです!
コメント