in_categoryやis_singleなどの関数を使って、
特定のウィジェットを除外・消去する方法をまとめていきます。アドセンス(Google Adsence)や広告なんかでよく使われますかね。
Contents
in_category arrayの複数指定とis_single【wordpress】
in_categoryでカテゴリの条件分岐する。カテゴリIDに注意すべき!?
カテゴリの条件分岐について簡単に書いておきます。
<?php if(in_category('1')): ?>
if(in_category('1')){
}
カテゴリIDは、カテゴリのマウスオーバー時した際に、表示されるIDか、スラッグで指定します。
もしくは
<?php if(in_category('カテゴリ名')): ?>
番号はわかりにくいけど、変わらない、
カテゴリ名はわかりやすいけど、カテゴリ名を変更すると変わってしまう。
と一長一短あります。
in_categoryのarrayで複数指定
複数指定したい場合
<?php if(in_category(array( '1', '7' ) )): ?>
isではなくinです。念のためですけど。
is_categoryはカテゴリアーカイブそのものです。カテゴリ内にある記事はひっかけてくれません。
ちなみに、スラッグの横にある投稿の数字とカテゴリIDは、違うことがあるため注意が必要です。 おそらくカテゴリの削除なんかをしていると、数字が異なる状況になることがあると思われます……。 あれ?表示されないってことにならないために、注意しておきましょう。
is_singleのウィジェットを除外
is_singleは個別記事の場合ですね。
is_singleを使うだけで基本的に変わりません。除外する場合が多いと思うので、除外する方法でいきます。
基礎中の基礎ですが、!で除外ですね。下記は7の記事を除外する場合です。
<?php if ( !is_single( '7' )): ?>
<?php if ( is_single() && !is_single( '7' )): ?>
もちろん、記述する場所によっては、phpで囲ってやらないときもあります。その場合、ifからはじまります。 function.php内でh2の見出しの上にアドセンスを表示する場合など、そうですかね。
if文内にechoでhtmlタグを埋め込む
少し応用すると、こんなコードもかけますかね。スマホの特定カテゴリのみ表示するコードになります。
// ピックアップ記事
if( is_mobile() ) { //スマホ
if(in_category(array( '1', '2' ))) {
// カテゴリAとB
echo "<p>テスト</p>";
} elseif ( in_category(array( '15', '16', '17' )) && !is_single( '1007' )) {
// カテゴリCとDとE ただし、1007番の記事は除く
} else {
}
}
echo内にあるhtmlタグにクラス名などがある場合は注意。ダブルクオーテーションの中にダブルクオーテーションがあるためPHPが解釈できずに構文エラーとなります。
また、is_mobileはもともとある関数ではないため、functions.phpの設定が必要です。詳しくはこちらをみてください。
記事中の表示はこちらにまとめてあります。
プログラミングは動画やチャットで勉強できる
最後の方が難しい人や、より応用を効かせたい人はプログラミングは動画やチャットで勉強できます。詳しくはこちらをみくください。
コメント