ブログサイトを運営する場合、アフィリエイト広告を設置する場合がほとんどだと思います。
WordPressでは、各テンプレートに広告コードを組込むだけで簡単にアフィリエイト広告を設置することができますが、広告の変更する場合などのメンテナンス性も考えて設置することで、作業が楽になりますよね。
今回は、関数を使ってショートコードでWordPressの記事一覧ループの中・各記事の中に広告を設置する方法をご紹介します。
固定ページや投稿ページ内に広告を設置する
固定ページや投稿ページに広告を設置する場合は、single.phpやpage.phpのテンプレートの中に広告のコードを記述します。
functions.phpに関数を追加し、各広告をショートコードで呼び出すことができるようにしておくと、より簡単に広告の管理を行うことができます。
同じ広告は同じショートコードで呼び出せば、広告を変更するときもfunctions.phpの中のショートコードの中身を変更するだけで、全ての同じ広告を書き換えることができるので素早く作業することができます。
functions.phpを編集する際は、必ずバックアップをとって慎重に編集してください。
ショードコードで広告を組込む場合は、まずはfunctions.phpでショートコードを利用するための関数を定義する必要があります。
functions.phpに記述function 関数名() {
return 'ここに広告のソースコードを入力';
}
add_shortcode('呼び出すときの記述', '関数名');
上記のような構成で関数を作成し、広告を記事内にショートコードで呼び出せるようにします。functionの後の関数名とadd_shortcodeに記載する関数名は必ず同じものを記述し、広告コードは『''』で囲んでください。
関数を呼び出すときは、呼び出したい場所にPHPコードを一行追加するだけで呼び出すことができます。
ショートコードを呼び出したい場所に記述<?php echo do_shortcode('[呼び出すときの記述]'); ?>
上記を踏まえ、具体的なコードを書くと下記のように記述になります。
関数名をpost_ad、呼び出すときの記述をpost_ad_inとした場合 functions.phpに記述//ページ広告上
function post_ad() {
return ' 広告のソースコードを入力 ';
}
add_shortcode('post_ad_in', 'post_ad');
上記の関数を呼び出すときのコード
<?php echo do_shortcode('[post_ad_in]'); ?>
上記のような関数を、出力したい広告の数だけ追加し、『single.php』や『page.php』に ショートコードを設置しましょう。複数のショートコードを記述する際は、関数名と呼び出すときの記述が同じにならないように注意してください。
WordPressテンプレートの中にショートコードを追加し、上記の画像のように関数内に記述した内容が出力されていれば記事への広告の設置は完了です。
記事一覧のループの中に広告を出力する
WordPressの各一覧ページのループの中に広告を表示させるためには、ループの最後に『$loop_count++;』という変数を追加し、ループ内で設置箇所の指定を行います。
下記のソースでは、上記で作成した、ショートコードをループ内に挿入します。
記事一覧ページのループ部分に記述<!--ループ開始-->
<?php if(have_posts()): while(have_posts()): the_post(); $loop_count++; ?>
~~省略(ループ内に出力する内容[タイトルや記事の内容など])~~
<?php if ( $loop_count == 3 ) : ?>
<div class="ad">
<?php echo do_shortcode('[post_ad_in]'); ?>
</div>
<?php elseif ( $loop_count == 7 ) : ?>
<div class="ad">
<?php echo do_shortcode('[post_ad_in]'); ?>
</div>
<?php endif; ?>
<!--↓ループの終了-->
<?php endwhile; endif; ?>
上記のソースでは、メインループの最後に『$loop_count++;』という変数を追加し、ループの終了前に、変数を表示する位置と出力する内容を指定しています。
今回は、3つ目の記事の後と7つ目の記事の後に広告が出力されるように記述していますが、上記のソースの『$loop_count == ◯』の◯部分の数字を変更することで、自由に出力させる位置を指定することができます。
上の画像のようにループの間にショートコード内の広告が出力されていれば設定は完了です。
上記のように、WordPressテーマのテンプレートの『index.php』『home.php』『category.php』『tag.php』『archive.php』などのループの中に記述を加えることで、広告の出力を行うことができます。
上記では、ショートコードを2つに分けて出力していますが、出力する内容が同じ場合は、まとめて記述することもできます。
記事一覧に同じ広告を2つ表示する場合<!--ループ開始-->
<?php if(have_posts()): while(have_posts()): the_post(); $loop_count++; ?>
~~省略(ループ内に出力する内容)~~
<?php if ( $loop_count == 3 || $loop_count == 7 ) : ?>
<div class="ad">
<?php echo do_shortcode('[post_ad_in]'); ?>
</div>
<?php endif; ?>
<!--↓ループの終了-->
<?php endwhile; endif; ?>
また、上記のソースコードの『( $loop_count == 3 || $loop_count == 7 )』の部分を『( $loop_count == 3 )』とすることで、一箇所だけに広告を出力させることもできます。
サイドバーに広告コードを追加する
サイドバーに広告コードを追加する場合は、sidebar.phpに直接記述する方法とウィジェットに記述する方法がありますが、WordPressテーマにウィジェットが搭載されている場合は、ウィジェットを活用しましょう。
まずは、WordPress管理画面→『外観』→『ウィジェット』からウィジェットの管理画面を開きます。
上の画像のように『テキスト』ウィジェットを追加し、エディタを『テキスト』にして広告用のソースコードを記述すればサイドバーに広告を出力するためのウィジェットが追加されます。
ウィジェットでは、上記で紹介したショートコードは利用できません。テキストウィジェットに直接記述してください。
※タイトルは入れても入れなくてもどちらでも問題ありません。
以上でWordPressへの広告の設置は完了です。広告は、データを計測しながら一番良い配置場所を探しましょう。
良く見かける誤タップや誤クリックを招く広告の配置は、当サイトでは推奨していません。ユーザーがイラッとする広告の配置は、せっかくサイトを見てくれているユーザーが離れていってしまいます。
ユーザーのことを考えた適切な広告配置を行いましょう。