三項演算子は以下の書式で使用します。条件式を評価し、trueであれば式1、falseであれば式2を返します。ただしif文のように条件に応じた処理は記述できません。
条件式 ? 式1 : 式2;
実際は以下のように記述します。変数への代入は「=」、条件式には「==」を使うのがポイントです。
<?php $link_target = 'blank';
$target = $link_target == 'blank' ? ' target="_blank"' : ''; ?>
<a href="https://www.google.com/"<?php echo $target; ?>>Google</a>
三項演算子は真ん中の「式1」の部分を記述しないことができます。その場合、条件式を評価してtrueであれば条件式の値、falseであれば式2を返します。
条件式 ?: 式2;
以下はWordPressのサブクエリで、ページネーション用に現在のページのページ番号を取得する記述です。get_query_var(‘paged’)は1ページ目のみ0を返すので条件式はfalseになります。falseの場合は1をセットします。2ページ目以降は現在のページ番号を返すので条件式はtrueになります。trueの場合はget_query_var(‘paged’)の値をそのまま使います。
<?php
$paged = get_query_var('paged') ?: 1;
$args = array(
'paged' => $paged, //現在のページ番号
);
?>
<?php $the_query = new WP_Query($args); ?>
これは以下のように記述するのと同じ意味になります。
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
