WordPressで特定の記事の場合だけ表示内容を変える方法!if~endif 文を使います

42-1
 
記事の内容によって、ブログの見た目を変えたい時があります。
 
例えば、
  • ある記事の場合、ブログのヘッダ画像を差し替えたい。
  • ある記事の場合、特別な文字を記事の前部分に表示したい。
などですね。
 
そんな時は、single.phpファイルでif~endif 文を使います。
 

スポンサーリンク

single.phpファイルの場所

/[ブログ毎のパス]/wp-content/themes/[テーマ毎のフォルダ名]/single.php
 
見つからない場合は探して見てくださいね。
 
作業前にsingle.phpをバックアップしておくと安心です。
 
スポンサーリンク

if~endif文を使います

ある記事の時だけ特別なことをしたい場合、if~endif 文を使います。
 
例えば記事IDが123の場合、こんな感じになります。
 
<?php if ( is_single( 123 ) ): ?>
    記事IDが 123 の時に表示したい内容
<?php endif; ?>
 
カッコが多くてややこしく見えますが、やってることは簡単です。
 
  • もし ・・・ if
  • 個別記事が ・・・ is_single
  • 123だったら ・・・ 123
ですね。
 
記事IDは「短縮URLを取得」ボタンをクリックした時に表示される番号ですよ。
 

ID以外でも指定できます

記事IDだけでなく、記事のタイトル名やスラッグを使うこともできます。
 
文字は ‘ (シングルクォート) で囲んでおきましょう。
 
<?php if ( is_single( 'aru_kiji' ) ): ?>
    記事スラッグが aru_kiji の時に表示したい内容
<?php endif; ?>
<?php if ( is_single( 'iPhoneの「MapFan+」アプリで有料のオプションプランを試してみた!オフライン地図は全部で1.7GBでした' ) ): ?>
    記事タイトルが iPhoneの(以下略) の時に表示したい内容
<?php endif; ?>
タイトルは指定が長くて面倒なのと変更する可能性もありますので、
記事IDが簡単で良いですね。
 

複数指定もできます

先ほどの例では一つの記事を指定しました。
 
複数の記事、例えば「記事IDが 11, 12, 13 のいずれか」を指定したい場合、arrayを使います。
 
<?php if ( is_single( array( 11, 12 ,13 ) ) ): ?>
    記事のIDが 11か12か13 の時に表示したい内容
<?php endif; ?>
 
記事IDの間を ,(カンマ) で区切るのがポイントです。
 

「~以外の場合」を使うと更に便利

ちょっと応用になりますが、「以外」という条件にしたい場合、
<?php else: ?>を使います。
 
以下の例では、記事IDが123かそれ以外の場合で表示する内容を分けてますよ。
 
<?php if ( is_single( 123 ) ): ?>
    記事IDが 123 の時に表示したい内容
<?php else: ?>
    記事IDが 123以外 の時に表示したい内容
<?php endif; ?>
便利ですね。
 

まとめ

if~endif 文を使うと、特定の記事の場合だけ特別な事ができます。
ある記事の場合に、ブログヘッダやタイトルを差し替えたい時などに使えますね。
 
処理を分けたい場合などに、お試しくださいね。
 
スポンサーリンク


カテゴリー: WordPress タグ: , ,

■前後の記事です

コメントを残す

メールアドレスが公開されることはありません。