プログラミング学習

ウィジェットのカテゴリ除外や消去・表示をする方法(in_category arrayの複数指定とis_single)

プログラミング学習

in_categoryやis_singleなどの関数を使って、
特定のウィジェットを除外・消去する方法をまとめていきます。アドセンス(Google Adsence)や広告なんかでよく使われますかね。

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の設定が必要です。詳しくはこちらをみてください。

is_mobile()で切り分ける

記事中の表示はこちらにまとめてあります。

【Cocoon/Swell】H2見出し上にGoogleアドセンス(広告ウィジェット)【目次上は危険!?】
スポンサーリンク

プログラミングは動画やチャットで勉強できる

最後の方が難しい人や、より応用を効かせたい人はプログラミングは動画やチャットで勉強できます。詳しくはこちらをみくください。

社会人・学生に安いオンラインプログラミングスクール比較/Javascriptやc#のスキルアップでおすすめは?

コメント

タイトルとURLをコピーしました