MENTAやTimeTicketでZoomオンライン指導・メンタリングを行っています。
WordPressやHTMLサイトのトラブル、SEO対策のご相談、HTML・CSS・WordPressなどのレクチャーなどが可能です。


【サボ様】WordPress 記事の下に広告を出したいが、ソーシャルボタンの位置が変えられない。the_content()との関係について

WordPressの記事ページに広告を出す際、ソーシャルボタンや関連記事の自動表示の位置を思うように変更できない・・・というご相談を頂きました。

これにはthe_content()が関係しています。プラグインの中にはthe_contentの内部で要素を自動表示するものがあるためです。

関連記事の上にアドセンス広告(ダブルレクタングル大)を配置したい!

また甘えてしまい申し訳ございません。
詰まってしまいました。
ワードプレスというよりアドセンス広告の話なのですが、、だめもとでおたずねします。
記事下にアドセンス広告を1枚ずつ(レンタグル大)各記事に貼り付けていたのですが、自動でできないかと思い、調べてみたらやり方が載っていました。
そこで、レンタグル大を2枚横並びにして、条件文を付けてスマホではレンタグル1枚になるコードを手に入れました。以下、そのコードでございます。

【本文記事下の横並びアドセンス(スマホ/PC切り替え)コード】
※コード自体はPHPなどが送信されないので見ることができませんでした。割愛します。

これをTwenty Twelveの子テーマ、「single.php」の「get_template_part」の直後に入れると書いてあったのでそうしたのですが、表示は上手くいったものの、関連記事一覧、ソーシャルボタンの下にきてしまいました。
理想としましては、記事直下に、スポンサーリンク付の横並びダブルレクタングル大が希望なのですが、どうもうまくいきません。

また、「content.php」のdiv .entry-content 直前という情報を耳にしてトライしたところ、同じく関連記事の下にきてしまいました。
そこで、今度は手動でやろうと各投稿ページの記事下(文章の終わり)で、もとから貼り付けた1枚のレクタングル大を消して先ほどのコードを挿入したところ、条件分岐が失敗してしまい、スマホ版を含む3枚の広告が同時に貼られました。。

どうすれば、関連記事の上にダブルレンタグル大を移動させられるのか、ヒントを頂ければと願います。


関連記事のプラグインである「Wordpress Related Posts」のAdvanced settings→Auto Insert Related Posts~にチェックボックスをはずした後に、
①子テーマのsingle.phpで div #content の後ろに挿入
② content.phpで div .entry-contentの直前にアドセンスコードの挿入。

…で、いけました!

ただ、シェアボタン(AddToAny Share Buttons)の下にきてしまいました。
そこでAddToAny Share Buttonsを任意の場所に表示させる方法として、アドセンス広告の下に設置し、AddToAnyの設定で”投稿上部のみ”にすることで無事にたどり着けました!

お騒がせして申し訳ございません。。
理由は謎のままですが、ご報告という子で改めてコメントを送信させて頂きます。

回答 the_content()の中に出力されるものがあります。

>サボさん
ご相談ありがとうございます。
こちら、結構WordPress特有の問題だったりします。

ソーシャル系プラグインに限らず、「記事の中に何かの要素を自動表示するプラグイン」はありますが、これらの処理は the_content() の中で行われている場合があります。

twenty twelveの場合はget_template_partでさらにcontent-XXX.phpが読み込まれていたと思いますが、その中にthe_content()があります。
the_contentは記事の本文を表示させるテンプレートタグです。
WordPress コーデックス テンプレートタグ/the content

自動表示のソーシャルボタンや関連記事はこのthe_contentの中で生成されるため、the_contentやget_template_partの下に任意のコードを表示しても、

本文(the_content)

関連記事やソーシャルボタン(the_contentnの中で表示)

広告コード(single.php等に記述)

となってしまうわけです。
では、そんな時どうするかの対策をいくつかご紹介します。

1.ソーシャルボタン、広告、どちらもショートコードで表示する

一つは、ソーシャルボタンと広告コード、どちらもショートコード(やPHP)で表示するという方法です。
これがおそらくサボさんが取られた方法ですね。

1.プラグインの自動表示機能をOFFにする
2.任意の位置にショートコードでプラグインの要素を表示していく
これなら表示位置を自在に変更できます。

「プラグイン名 + shortcode」などで検索すると情報が得られることがあります。

プラグインの中にはショートコードに対応していないものもあり、その場合は他の手段を模索しなくてはいけません。

2.広告も自動表示させる(プラグイン)

プラグインの兼ね合いも出てきますが、広告コードを記事下に自動表示できるプラグインもあるでしょう。

使ったことがあるものだと「AdRotate」
https://ja.wordpress.org/plugins/adrotate/
記事の上下、記事の中(〇コめの段落の下など)、カテゴリを絞ったりして記事内に広告を表示できる機能があります。

検討したものだと「Wp-Insert」も同じような機能がありそうです。
https://ja.wordpress.org/plugins/wp-insert/

ページやカテゴリによって表示させる広告バナーを変更したい・・・といった場合には便利なプラグインです。

こういったプラグインはショートコードと合わせて自動表示機能があるため、”記事の下”に表示することもできるでしょう。ただし、ソーシャルボタンの上に来るか下に来るかは使ってみないと分からない部分もあります。

便利なプラグインではあるので一応紹介までに。

3.広告をthe_contene()の中に表示するように指定する

3つ目はfunctions.phpに処理を追加するので初心者向けではありませんが、覚えておくと役に立つかもしれません。

試される場合は編集前・手つかずのfunctions.phpを必ず保存しておきましょう。functions.phpにエラーがあると管理画面にすら行けなくなります(画面真っ白け)

プラグイン問題だけでなく、記事の中に定型文、見出し、カスタムフィールドなどを含めたい時に役立ちます。

function add_ads(){
/* この中で任意の表示・分岐など */
}
function add_content($the_content) {
  if (is_singular('post')) { /* 投稿記事だけの処理にする(固定ページもthe_contentが使われるため) */
    $return = $the_content;
    ob_start();
    $return .= add_ads(); /* 任意の要素を表示させる関数 */
    $return .= ob_get_clean();
    return $return;
  } else {
    return $the_content;
  }
}
add_filter('the_content','add_content');

僕もプラグインや定型文の並び順に困ってズバリの回答が無い時期に色々リサーチした情報を組み合わせて使っているコードです。
ob_start、ob_get_cleanの記述が無いと、記事より上に広告の内容が来てしまいます。

これをやるメリットの一つとして、目次生成プラグイン(table of contents plusなど)にも記述した見出しを表示させられるという点があります。
(テンプレートに直接書いた見出しは、見出しプラグインに反映されない)

既に解決されたようですがご参考までに。

おすすめコンテンツ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA