質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1277閲覧

ワードプレスで取得したページの長さ(px)に応じて記事直下に広告コードを貼り付けたい

koiitirou3

総合スコア35

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/01/04 06:12

編集2017/01/04 10:45

タイトルの通りです。
アドセンスコードの設定を行いたいと考えていますが、どうしたらよいでしょうか?

現在は以下のようにh2タグごとに広告を挿入するかたちで実装していますが、長いページの記事の一番下(具体的には、記事下まで2400px以上なら)に4番目のコードを挿入したいと思っております。

function add_ad_before_h2_for_3times($the_content) { //1つ目の広告タグを挿入(PC表示用) $ad1_pc = <<< EOF <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- h2-1 --> <style type="text/css"> .adslot_1 { width: 300px; height: 250px; } @media (min-width:340px) { .adslot_1 { width: 336px; height: 280px; } } </style> <ins class="adsbygoogle adslot_1" style="display:inline-block;" data-ad-client="ca-pub-*****************" data-ad-slot="**************"></ins> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"> </script> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script> EOF; //2つ目の広告タグを挿入(PC表示用) $ad2_pc = <<< EOF <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- h2-2 --> <style type="text/css"> .adslot_1 { width: 300px; height: 250px; } @media (min-width:340px) { .adslot_1 { width: 336px; height: 280px; } } </style> <ins class="adsbygoogle adslot_1" style="display:inline-block;" data-ad-client="ca-pub-*****************" data-ad-slot="***************"></ins> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"> </script> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script> EOF; //3つ目の広告タグを挿入(PC表示用) $ad3_pc = <<< EOF <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- h2-3 --> <style type="text/css"> .adslot_1 { width: 300px; height: 250px; } @media (min-width:340px) { .adslot_1 { width: 336px; height: 280px; } } </style> <ins class="adsbygoogle adslot_1" style="display:inline-block;" data-ad-client="ca-pub-*****************" data-ad-slot="*******"></ins> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"> </script> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script> EOF; if ( is_single() ) {//投稿ページ(PC) $h2 = '/^<h2.*?>.+?<\/h2>$/im';//H2見出しのパターン if ( preg_match_all( $h2, $the_content, $h2s )) {//H2見出しが本文中にあるかどうか if ( $h2s[0] ) {//チェックは不要と思うけど一応 if ( $h2s[0][0] ) {//1番目のH2見出し手前に広告を挿入 $the_content = str_replace($h2s[0][0], $ad1_pc.$h2s[0][0], $the_content); } if ( $h2s[0][1] ) {//2番目のH2見出し手前に広告を挿入 $the_content = str_replace($h2s[0][1], $ad2_pc.$h2s[0][1], $the_content); } if ( $h2s[0][2] ) {//3番目のH2見出し手前に広告を挿入 $the_content = str_replace($h2s[0][2], $ad3_pc.$h2s[0][2], $the_content); } } } } return $the_content; } add_filter('the_content','add_ad_before_h2_for_3times');

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/01/04 09:03

質問文のコードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
guest

回答1

0

ベストアンサー

「長いページの記事」はブラウザで表示するまで正確な長さがわかりません。そのため、「4番目のコード」をPHP側で出し分けるのは難しいと思います。

  1. 文字数でだいたい判断する

何文字以上、何改行以上という感じで出しわけをする
0. 表示したページ上で JavaScript で長さを判断し、短かったら消す

のどちらかかな、と思います。

投稿2017/01/04 16:26

kei344

総合スコア69364

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koiitirou3

2017/01/05 05:50

ありがとうございます! 本文中に何か特別なタグがある場合+文字数が何文字以上の場合、なら「4番目のコード」を書く、という方向で実装したいと思います! いつも的確なコメントありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問