読者です 読者をやめる 読者になる 読者になる

ショウジンブログ

Learn as if you will live forever, Live as if you will die tomorrow.

固定ページのスラッグで判別して出力を出し分ける@WordPress

Sponsored Links

固定ページのスラッグ(URL)を判別して条件文を書き、出力する内容を出し分ける例です。

WordPressではカテゴリや投稿、固定ページなど、様々な条件を指定して出力内容を出し分けることが出来ますが、この例は固定ページになります。

f:id:showjinx:20160705111116j:plain

上記の設定例は、固定ページに「japanese」というスラッグを適用し、その子ページとして作った子ページ「jp」の画面。この「日本語を学ぶ」という名前の「japanese/jp」をページスラッグとして持つページを表示している場合を指定して、出力内容を分けるには以下のようにします。

<?php if(is_page('japanese/jp')): /* スラッグ=URL */ ?>
    <p>ページスラッグ(URL)が「ドメイン/japanese/jp」の場合に出力する内容</p>
<?php else: ?>
    <p>それ以外の場合に出力する内容</p>
<?php endif; ?>

実際の納品案件で使ったものですが、ある外語専門学校で「日本語科」という画家があり、この学科に六カ国語(日・英・簡体字・繁体字・ハングル・ベトナム)の表記が必要でした。

いろいろな実装方法があるかと思いますが、このときには前述の実装方法でグローバルメニューを言語ごとに出し分けるのに使用しました。

最初、固定ページをスラッグで指定するには「子」までは無理かと思ってたのですが大丈夫でした。

固定ページを判別するにはスラッグの他に固定ページのID、タイトルもありますが、スラッグに意味をもたせておけばIDよりもわかりやすいかと思います。(タイトルは後で変更になる場合もあるので)

<?php if(is_page('10')): ?>
    固定ページのIDに10を持つものを表示している時に出力する内容
<?php elseif(is_page('日本語を学ぶ')): ?> 
    固定ページのタイトルに「日本語を学ぶ」を持つものを表示している時に出力する内容
<?php elseif(is_page('japanese')): ?> 
    固定ページのスラッグに「japanese」を持つものを表示している時に出力する内容
<?php endif; ?>