少し前にgoogle adsenseのwordpressプラグインのサポートが終了し使えなくなってしまったので、手動でテーマをカスタマイズして広告を設定したため、そのときの方法を紹介します。内容的には子テーマを作り2つ目の「見出し2」の前に広告を表示するという設定を行いました。

まずは子テーマを作成する

wordpressでは、あるテーマをベースに必要な箇所だけカスタマイズしたテーマを作る場合に子テーマを作成します。

ここではabcという名前のテーマの子テーマを作成する方法を記載します。操作はwordpressサーバ上で行います

1. 「/wp-content/themes/abc_custom」ディレクトリを作成する
※ディレクトリ名は任意だが、わかり易いようにabc_customとしています

2. abc_customディレクトリ内にstyle.cssファイルを作成する
ファイルの中身は以下のようになります。Theme Nameでこのテーマの名前を定義し、Templateで元とするテーマのディレクトリ名を指定します。

/*
 Theme Name: abc_custom
 Template:abc
*/

@import url('../abc/style.css');

3. abc_customディレクトリ内にfunctions.phpファイルを作成する

<?php
  add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
  function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style'));
  }
?>

以上を行うと、wordpressの管理画面の「外観」->「テーマ」のリストに作成したテーマが表示されるようになりますので、これを有効化します。

広告の表示設定を追加する

google adsenseの管理ページから広告用表示用のコードを取得した前提での記載となります。

先ほど作成した「/wp-content/themes/abc_custom/functions.php」ファイルを以下のように編集します。これで2つめのh2タグの手前に広告が表示されるようになります。

<?php
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
  wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
  wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style'));
}

// ★ここから追加
function add_ad_before_h2_for_once($the_content) {
$ad1 = <<< EOF
// ★ここに取得したコードを張り付ける
EOF;
  if ( is_single() ) {
    $h2 = '/^<h2.*?>.+?<\/h2>$/im';
    if ( preg_match_all( $h2, $the_content, $h2s )) {
      if ( $h2s[0] ) {
        if ( $h2s[0][1] ) {
          $the_content = str_replace($h2s[0][1], $ad1.$h2s[0][1], $the_content);
        }
      }
    }
  }
  return $the_content;
}
add_filter('the_content','add_ad_before_h2_for_once');
?>