コンテンツ
is_single()で記事個別ページの判定
投稿記事の個別ページにのみ表示させたい内容や実行したい処理ってよくあります。
例えば、
記事個別ページでのみ実行したいJavasriptの処理があれば、
<head>~</head>内で記事個別ページかどうかを判定してJavascriptのコードを出力します。
そんな場合には、
is_single()という関数を使って条件判定を行います。
このようなコードになります。
<?php if( is_single() ): ?>
ここに処理を書く
<?php endif; ?>
もし、記事個別ページと記事個別ページ以外で処理を分けたい場合には、以下の様なコードになります。
<?php if( is_single() ): ?>
記事個別ページでの処理
<?php else: ?>
記事個別ページ以外での処理
<?php endif; ?>
記事ID、記事タイトル、スラッグを指定して、特定の記事個別ページの判定
特定の記事ページのみで処理を実行したい場合もあります。
その場合には、記事ID、記事タイトル、スラッグのいずれかを指定します。
このような感じになります。
【記事IDを指定】
is_single("記事ID")
【記事タイトルを指定】
is_single("記事タイトル")
【スラッグを指定】
is_single("スラッグ")
また、複数の記事個別ページを判定する場合には、配列で指定します。
is_single( array("記事ID1", "記事ID2", "記事ID3") )
is_single( array("記事ID1", "記事ID2", "記事タイトル", "スラッグ") )
のように、記事ID、記事タイトル、スラッグが混ざっていてもOKです。
is_singular()を使った記事個別ページの判定
is_singular()を使って、記事個別ページかどうかの判定も可能です。
以下の様に使用します。
<?php if( is_singular() ): ?>
ここに処理を書く
<?php endif; ?>
ただ、is_singular()は、記事個別ページ、固定ページ、添付ファイルページのいずれかの判定を行います。
なので、もし記事個別ページのみを判定して処理を行う場合には、
is_singular()に「post」を指定します。
このように使います。
<?php if( is_singular("post") ): ?>
ここに処理を書く
<?php endif; ?>
記事一覧ページで特定の記事判定
記事の一覧ページの中で、特定の記事のみを判定して処理を変更したり、表示の仕方を変えたい場合があります。
例えば、
先日、ブログ記事の中で重要なお知らせを記載した場合のみ、タイトルを目立たせたい、
という案件がありました。
具体的には、
「タイトルに "重要なお知らせ" とい文字列が入っている場合のみ、記事タイトルを目立たせる」
という仕様になりました。
そんな場合には、このようなコードを書けば可能です。
<?php if(have_posts()):while(have_posts()):the_post(); ?>
<?php if( strpos(get_the_title(),"重要なお知らせ") !== false ): ?>
<span class="bold"><?php the_title(); ?></span>
<?php else: ?>
<?php the_title(); ?>
<?php endif; ?>
・
・
<?php endwhile;else: ?>
<?php endif; ?>
・カスタムフィールドでチェックボックスを用意
・チェックが入っている場合のみ、記事タイトルを目立たせる
とすればいいと思うのですが、
お客さんがこれがいいと言われたので、今回はこのような対応になりました。
この記事へのコメントはありません。