WordPress

【アフィンガー5】ウィジェットでPHPを実行して表示する広告を変える方法【WordPress】

2020年9月17日

表示する広告を記事やカテゴリーの内容に合わせて変えたり、非表示にしたい場合がありますよね!

調べたのですが、アフィンガー5にはカテゴリーごとに表示する広告を変える機能はないようです。
(「08_STINGERカテゴリ別ボックス」でカテゴリ別に表示の切り替えができます!)

ウィジェットに if 文書けば簡単に変えられるじゃん!

ということで、今回はウィジェットにPHPを書いて、表示する広告を変える方法をご紹介します!

WordPress でウィジェットにPHPを書く準備

さくっとコードを書いて終わりにしたかったのですが WordPress ってデフォルトだと、ウィジェットでのPHPの実行ができないんですよ!

ウィジェットで PHP を実行するには、プラグインを使用するか、functions.php の修正が必要になります!

プラグインを入れるとサイトスピードが落ちるので、今回は functions.php を修正することにしました。

修正に関しては、以下のサイトの方法を丸々使用させて頂きました!ありがとうございました!

参考サイト
WordPressのウィジェットでPHPコードを実行する方法

続きを見る

修正といっても以下のコードを functions.php に張り付けるだけなので簡単です。
(修正前のバックアップは必須です!)

 PHP
function widget_text_exec_php( $widget_text ) {
if( strpos( $widget_text, '<' . '?' ) !== false ) {
ob_start();
eval( '?>' . $widget_text );
$widget_text = ob_get_contents();
ob_end_clean();
}
return $widget_text;
}
add_filter( 'widget_text', 'widget_text_exec_php', 99 );

この修正を行うことにより『テキストウィジェット』での PHP の実行が可能となります!

『カスタムHTMLウィジェット』 に書き込んでも PHP は実行できませんのでご注意ください!

PHPでの広告の表示の変え方

今回広告を表示させたい条件の1つがこれ!

広告の表示条件

  • 表示場所は投稿記事の上
  • モバイルからのアクセスの場合のみ広告表示
  • 特定のカテゴリーでは広告を表示させない

特定のカテゴリーで、モバイルからのアクセスの時のみ、投稿記事の上に広告を表示したいんです!
それ以外の時は非表示にしておきたい!

なので『投稿記事の上に一括表示』に、まず『テキストウィジェット』を追加!

投稿記事の上に一括表示の設定画面

その後テキストに if 文を追加すればOK!!

 html
<?php if(wp_is_mobile() && !in_category('広告を表示させないカテゴリーのIDを記入')): ?>
//表示させる広告のコードを記入
<?php endif; ?>

wp_is_mobile() が『モバイルからのアクセス』という意味。

!in_category('カテゴリーID') が『そのカテゴリーIDではない時』という意味になります。

なので『モバイルからのアクセスで、かつ記入されたカテゴリーIDではない時』に広告を表示することになります。

 

広告を非表示にしたいカテゴリーが沢山ある場合は、以下の様にカンマで区切って追加すれば大丈夫です!

 PHP
<?php if(wp_is_mobile() && !in_category(array('カテゴリーID','カテゴリーID','カテゴリーID'): ?>
//表示させる広告のコードを記入
<?php endif; ?>

 

そして、もうひとつの広告表示条件がこれ!

広告の表示条件

  • 表示場所は投稿記事の下
  • 2つのカテゴリーで別々のアフィ広告を表示
  • 他のカテゴリーでは Google AdSense を表示

カテゴリーごとにおすすめしたい商品が違うので、別々の商品の広告を表示したいんです!

そして、商品を紹介していないカテゴリーではアドセンス広告を表示しておきたい!!

なので、まずは『投稿記事の下に一括表示』に『テキストウィジェット』を追加!

投稿記事の下に一括表示の設定画面

で、その後に以下の if  文で条件を切り分ければ OK ですね!

 PHP
<?php if (in_category('アフィ広告1を表示させるカテゴリーID')) : ?>
//表示させるアフィ広告1のコードを記入
<?php elseif(in_category('アフィ広告2を表示させるカテゴリーID')) : ?>
//表示させるアフィ広告2のコードを記入
<?php else : ?>
//Google AdSense のコードを記入
<?php endif; ?>

ウィジェットでPHPを実行して表示する広告を変える方法 ~まとめ~

ウィジェットでPHPを実行できると、広告だけでなく表示する内部リンクなども変えられてとても便利です!

いちいち記事にコードを書いていたのでは修正する時に大変ですからね。

次回はプラグインなしでアフィンガーのコピーライトを修正する方法を紹介したいと思います。

よければそちらもご覧ください!




-WordPress

Copyright はなげんきの犬小屋 , All Rights Reserved.