小説家になろうにて「キモオタでギャルゲー、それって何の罰ゲーム!?」連載中!

WordPressで投稿記事によってウィジェットを出し分ける4個の方法と比較

カスタマイズ&プラグイン
この記事は約6分で読めます。

本記事では条件分岐によってウィジェットを出し分ける方法を4個紹介します。
例えば、

質問者の写真

この記事にはAdSenseを出したいけど、この記事では出したくない!
 

そういう時に役立ちます。

スポンサーリンク
この記事を読む方へのオススメ

方法1 ウィジェット出し分け機能のついたテーマを使う

Luxeritasのウィジェット条件分岐機能

当サイトでも使っている無料人気テーマLuxeritasには簡易ウィジェット出し分け機能がついています。
AdSenseその他テキストベースのウィジェットであれば、条件を設定して表示・非表示が切り替えられます。

具体的には「アドセンス(Luxeritasオリジナル)」を使います。

(画像:Luxeritasのアドセンスウィジェット)主にアドセンス用だけど、テキスト・HTML 等、なんでも書けます。このウィジェットは指定したページで表示・非表示を切り替えられます。

条件分岐の項目は以下の通り。

細かな設定こそできませんが、基本的にはこれで足りると思います。

こんな人におすすめ

解答者の写真
WordPressを始めたばかりの初心者
 

積極的な意味でも消極的な意味でもです。

積極的な意味としては「最低限の機能があり、直観的で使いやすいこと」。
これ以上のことをやりたければ、改めて方法を研究すればいいです。

消極的な意味としては「プラグインを入れずに済む」。
詳しくは方法2にて説明します。

スポンサーリンク

方法2 ウィジェットの出し分けプラグインを使う

条件分岐プラグイン

ウィジェット条件分岐プラグインで有名なのは以下の2つです。

Widget Logic

PHPコードがわかる方向け。

Widget Logic
WidgetLogicletsyoucontrolonwhichpageswidgetsappearusingWP'sconditionaltags.

ある程度でしたら、コードを入力して直接制御できます。

Jetpack or Display Widgets

GUIのみで操作したい方向け。

Display Widgets
特定のページでウィジェットを非表示にするだけです。チェックボックスを各ウィジェットに追加して、すべてのサイトページでチェックボックスを表示または非表示にします。

使い方はLuxeritasとほぼ同じ。
ただしこちらの方が表示・非表示のどちらでもでき、カテゴリーによる分岐などもできます。

こんな人におすすめ

解答者の写真
勧めません!
 

 

WordPressに慣れたらわかります。

サイト作りはサイト速度との戦い。
速度対策においては「いかにプラグインを減らすか」も重要課題の1つです。

始めたばかりの頃は「(やりたいこと) WordPress」で検索して、出てきたプラグインを入れがち。
プラグインが膨れあがってサイトが激重になった頃、自らが黒歴史を刻んできたことを悟ります。

質問者の写真

私もその一人だけどね……
 

早い内から、できるだけプラグインに頼らない癖をつけましょう。

あえて言うなら、

解答者の写真
法人(特に中小企業)ユースで専門知識のない人が自力で作ろうとする場合
 

本業が忙しくて勉強する時間なんてないでしょうから

スポンサーリンク

方法3 予め分岐を仕込んだウィジェットを置く

具体的なウィジェットの作り方

PHPファイルに記述してインクルードします。

WordPressの記事やテキストウィジェットの中でPHPを使えるようにする
テキストウィジェットにPHPの実行コード書いても動かないよ~それWordPressの仕様だからだけどPHPファイルをテキストウィジェットにインクルードしちゃえば...

方法2でやっていることをプラグイン無しで行うという話です。
Widget Logicを使えるくらいのPHP知識があるなら十分できます。

例えばスマートフォン以外ではアドセンスを表示したい場合、

<?php if (!wp_is_mobile()) :?>
【アドセンスコード】
<?php endif; ?>

このコードを記述したpcadsense.php(名前は何でもいい)を作成し、アップしてショートコードで実行します。

こんな人におすすめ

解答者の写真
どうしても凝った分岐をしないといけない人
その上でPHPがある程度わかる人
 

条件分岐絡みの多くは、この方法で解決できると思います。
もしPHPがわからなくても「PHP (分岐したい条件)」で検索すればなんとかなります。
実際に私、それで対処してきましたので。

スポンサーリンク

方法4 投稿テンプレートの使い分けで分岐する

投稿テンプレートによって分岐する方法

「記事ごと」の条件分岐なら、基本的には一番楽かつ柔軟だと思います(Luxeritasユーザー以外)。

例えば「アドセンスあり、別の広告、どちらも無し」の3つのテンプレートで振り分けます。
最初にテンプレートを用意しておけば、あとは記事ごとに選択することで出し分けることが可能です。

以下はLuxeritasを例に記します。
子テーマの使用が前提です。
他のテーマの場合は、テーマに応じてアドセンス表示コードの削除だけ読み替えて下さい。

広告無し用の投稿テンプレートを作成

single.phpを親テーマから抜き出し、single-noadsense.phpとリネームします。

single-noadsense.phpの冒頭に次の記述を加えます。

<?php
/*
Template Name: noadsense
Template Post Type: post
*/
?>

single-noadsense.phpの中から次の記述を削除します。

 if( isset( $luxe['adsense_visible'] ) ) echo apply_filters('thk_adsense', ''); // アドセンス

子テーマ直下にアップします。

他広告用の投稿テンプレートを作成

例えばAmazonなら、上記同様single-amazon.phpファイルを作成します。

single-amazon.phpの冒頭に次の記述を加えます。

<?php
/*
Template Name: amazon
Template Post Type: post
*/
?>

single-amazon.phpの中から次の記述を削除します。

 if( isset( $luxe['adsense_visible'] ) ) echo apply_filters('thk_adsense', ''); // アドセンス

広告を出したい任意の場所にAmazonアソシエイトのコードを記述します。
同じ場所に出したいなら、次の<aside>の下がいいと思います。

</div><!--/.post-->
<aside>
<?php


 if( isset( $luxe['sns_bottoms_enable'] ) ) {
 if( isset( $luxe['sns_bottoms_msg'] ) ) {
?>

子テーマ直下にアップします。

完成

投稿編集画面からテンプレートを選択すれば反映されます。

こんな人におすすめ

解答者の写真
Luxeritas、その他条件分岐機能のついたテーマのユーザー以外の人
 

Luxeritasの場合はテーマの機能でまったく同じことができますので。

スポンサーリンク

まとめ

解答者の写真
4個の方法と書いたけど、実際には3個かな
方法1か方法4と方法3を組合せながら対処していくことになると思う
 
ブログやサイトを始めたい・引っ越したい方へ

レンタルサーバーWING。
KUSANAGI&WEXALが使えるVPS。
どちらでも高速でコスパに優れたConoHaで始めるのがおすすめです。
もっと知りたい方はボタンをクリックしてください。
(ボタン経由で入会した場合、1000円分のクーポンがもらえます)

この記事を書いた人

広島市内のパチンコホール勤務。
3号機時代からのパチンカス。
ADHD、精神障害者手帳3級所持。
慶應義塾大学商学部卒、専攻はマーケティング(広告・宣伝)
国家一種試験経済職の資格で公安調査庁に入庁。
在職時は国際テロ、北朝鮮を担当。
「小説家になろう」の底辺作者。
WordPress記事は素人の備忘録です。

天満川鈴をフォローする
カスタマイズ&プラグイン
スポンサーリンク
きもおたねっと。

コメント

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