WordPressプラグイン「Advanced Custom Fields」を使って条件分岐する方法のメモ。
ページレイアウトをコンテンツによって切り替えたり、コンテンツの表示・非表示を選択できるようにしたいときに使えます。
Advanced Custom Fieldsの設定
まずはAdvanced Custom Fieldsでラジオボタンを使う設定から。
ここでは条件分岐するのに必要な設定のみ紹介します。
フィールドラベル
編集画面で表示される名前。
フィールド名
単語と単語のつなぎにはスペースやハイフンは使わず、アンダースコア(アンダーバー)を使うようにしましょう。
フィールドタイプ
「ラジオボタン」を選択
選択肢
「値 : ラベル」と書くことで値(Value)とラベルを指定できます。
値とラベルを「(半角スペース):(半角スペース)」でつなぎます。
portrait : 縦長
landscape : 横長
ザックリかつ正確な説明ではありませんが、値はソースコードの中で取得して処理を行ったり、ラベルは編集画面でラジオボタンの項目名として表示されたりします。
ラベルをページ上にそのまま出力(表示)することもできます。
返り値
今回は値を使いたいので「Value」を選択。
ラジオボタンの値(Value)によって条件分岐させる
WordPressテーマ内の任意の場所に以下のように記述します。
<?php
$status = get_field('img_orientation'); //フィールド名が「img_orientation」のフィールドを取得
if( $status == 'landscape' ): //値(Value)が「landscape」だったら
?>
//値(Value)が「landscape」のときの処理
<?php else: ?>
//値(Value)が「landscape」でないときの処理
<?php endif; ?>
返り値を「Both (Array)」にして値とラベルを使う
ちなみに返り値で「Both (Array)」を選択すると、以下のような感じで値とラベルの両方を使えます。
<?php
$status = get_field('img_orientation'); //フィールド名が「img_orientation」のフィールドを取得
if( $status == 'landscape' ): //値(Value)が「landscape」だったら
echo $status['label']; //ラベル「横長」を出力
endif;
?>
まとめ
以上、Advanced Custom Fieldsのラジオボタンを使って条件分岐する方法でした。
- 画像の向きによってコンテンツ幅を変えたい
- コンテンツの内容によってリンクテキストを変えたい
- 時期が来るまでコンテンツを非表示にしておきたい
というようなときに使えるので、わりと便利な方法かと思います。