広告の位置、カスタマイズでh2タグ前ではなく目次前に設置したい

Simplicityの特徴 › フォーラム › Simplicityについての質問 › 広告の位置、カスタマイズでh2タグ前ではなく目次前に設置したい

  • このトピックには4件の返信、2人の参加者があり、最後にかうたっくにより9年、 10ヶ月前に更新されました。
4件の返信スレッドを表示中
  • 投稿者
    投稿
    • #48950
      かうたっく
      ゲスト

      お世話になります。質問させてください。

      テーマはSimplicity2 child、バージョン20161002です。

      寝ログのアドセンスをWordPress記事本文中に配置できる手軽でスマートな方法で、Simplicity2 childにfunctions.phpに下記コード書き込みました。

      //H2見出しを判別する正規表現を定数にする
      ディファイン H2_REG / h2.* /i //H2見出しのパターン
        
      //本文中にH2見出しが最初に含まれている箇所を返す(含まれない場合はnullを返す)
      //H3-H6しか使っていない場合は、h2部分を変更してください
      ファンクション get_h2_included_in_body  $the_content
        if  preg_match  H2_REG, $the_content, $h2results  //H2見出しが本文中にあるかどうか
          return $h2results[0] 
      
      ファンクション add_ads_before_1st_h2 $the_content 
        if   is_single  //固定ページも表示する場合はis_singular()にする
          //広告(AdSense)タグを記入
          ob_start //バッファリング
          get_テンプレート_part ad-in-body //広告貼り付け用に作成したテンプレート
          $ad_テンプレート = ob_get_clean 
      //ad-in-body.phpを呼び出すコード
      ob_start  //バッファリング
      if  wp_is_モバイル 
        get_テンプレート_part ad-mobile-in-body //モバイル広告用テンプレート
       else 
        get_テンプレート_part ad-in-body //PC広告用テンプレート
       
      $ad_テンプレート = ob_get_clean 
          $h2res
      ult = get_h2_インクルーデッド_in_ボディ $the_content //本文にH2タグが含まれていれば取得
          if $h2result //H2見出しが本文中にある場合のみ
            //最初のH2の手前に広告を挿入(最初のH2を置換)
            $the_コンテント = preg_replace H2_REG, $ad_template.$h2result, $the_content, 1 
       
        リターン $the_コンテント 
       
      add_フィルター the_コンテント add_ads_before_1st_h2 

      ※私のコピーの仕方がまずかったようで、このコードをコピーした時、ハイライターのタイトルPHPとコード数字コードと、コードが2つくっついてきました。念のための事例としてご報告しておきますね。

      このカスタマイズをする前は、h2タグ前・目次前には広告がない状態です。このコードを入れるとh2タグ前と目次前にアドセンスが表示されます。(以前使っていたテーマでは目次前に表示されていた)

      文中にあったSimplicityの人用のリンク先、Simplicityの本文中広告をダブルレクタングルにするカスタマイズ方法より下記コードのみを追記しました。

      //親テーマの本文中広告関数を動作させない
      ファンクション remove_ads_ビフォー_1st_h2 
          リムーブ_フィルター the_content add_ads_before_1st_h2
      
      add_アクション アフター_セットアップ_テーマ, remove_ads_before_1st_h2 

      すると、h2前に1つ広告が表示されますが、目次前のアドセンスを表示させ、h2前(目次の下)を消したいと思ってます。

      ちなみに、全部のコード(下記)を追記したら、目次上下2つに広告が表示されてました。

      //親テーマの本文中広告関数を動作させない
      ファンクション リムーブ_ads_before_1st_h2 
          リムーブ_フィルター the_content add_ads_before_1st_h2 
       
      add_アクション アフター_セットアップ_theme, remove_ads_before_1st_h2 
      
      ファンクション add_ads_ビフォー_1st_h2x2 $the_content 
        if is_シングル && is_ads_in_content 
          //広告(AdSense)タグを記入
          ob_start //バッファリング
          get_テンプレート_part ad-in-body //広告2つ用に作成したテンプレート
          $ads = ob_ゲット_クリーン 
          $h2 = / h2.* /i //H2見出しのパターン
          if preg_match  $h2, $the_content, $h2s //H2見出しが本文中にあるかどうか
            $the_content = preg_リプレース $h2, $ads.$h2s[0], $the_content, 1 //最初のH2を置換
       
        リターン $the_content
      
      add_フィルター the_content add_ads_ビフォー_1st_h2x2 

      Simplicity2 childのPC用ad-in-body.phpに下記コード、一行目と最終行の2行を追記したけど、効果が見られず、2行目からのdivから/divまで書いてる状態です。

      `?ピーエイチピー if ( is_ads_visible //広告表示がオンのとき?
      <div class=”ad-space”>
      <div class=”ad-label”>スポンサーリンク</div>
      <div class=”ad-pc”>
      <!– 分岐タグ2つ以上になると –>
      php if( !is_single(‘2576’) || !is_404 ) :
      <!– 上記以外で出力する:adコード –>
      async src=”//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js”>
      <!– レクタングル大 –>
      <ins class=”adsbygoogle”
      style=”display:inline-block;width:336px;height:280px”
      data-ad-client=”ca-pub-******”
      data-ad-slot=”*****”></ins>
      アドコード
      (adsbygoogle = window.adsbygoogle || []).push

      <!– コードココまで –>
      php else:
      <!– 2576.404:ad以外のコード –>

      <!– ここまで –>
      php endif;
      <!– 分岐タグ:ココまで –>
      </div>
      <div class=”clear”></div>
      </div>
      php endif;

      ウィジェットの広告コードは、『広告』は空です。スマホは、投稿パンくず上・投稿文下にモバイル用広告ウィジェットを入れて、PCは投稿文下にPC用広告ダブルレクタングルを入れてます。

      あとは、固定ページ本文上・本文下、インデックスリストの3つにPC用モバイル用の広告ウィジェットが入ってるかんじです。

      寝ログでのコードは以前、目次前にアドセンスが表示されてたので同じようにしたいですが、消えてしまった広告は、もしかしたら寝ログでのコードなのかな?と思っています。コードが同じでそっちが消えちゃったかな???とも考えてみましたけど、さっぱりわかりません。

      • h2タグ前であってるのは承知の上で><
        目次前のみ残す方法がありそうなら、教えてもらえますか・・・
      • 分かりにくいコードで申し訳ありません・・・

      投稿ページのリンクを貼っておきます。ウィジェットに広告コードが保存できない?Simplicity2でアドセンスコードを拒否されたけど、やっと解決!

      よろしくお願いします。

    • #48961
      アバター画像わいひら
      キーマスター

      答える前に、いくつか不明が点があるので質問させてください。

      まず、目次というのは何でしょうか?
      Simplicityには、目次機能はなかったと思います。
      Table of Contents Plusプラグインなどの目次でしょうか?目次を表示している方法について書いていただければと思います。

      あと、カスタマイズをせずともSimplicityには「H2見出し手前に広告を表示する機能」と「H2見出し手前にウィジェットを表示する機能」があります。
      そのSimplicityの機能を利用するのではダメなのでしょうか?テンプレートファイルをカスタマイズする意図を教えていただきたく思います。


      あと、もし次回コードを書き込むことがあった場合、403エラーが出た場合は、以下のツールでコードを「特殊文字に変換」してから書き込んでみてもらってよろしいでしょうか。
      HTML特殊文字変換|コードをホームページに載せる時に便利 | すぐに使える便利なWEBツール | Tech-Unlimited
      多分これで、サーバーのファイヤーウォールに引っかからないとは思うのですが。多分。
      もしエラーが出ることがあれば、試していただければ幸いです。

    • #49244
      かうたっく
      ゲスト

      ご返信ありがとうございます!

      目次はプラグインTable of Contents Plusを使ってます。

      カスタマイズしたときと、ウィジェットにしたとき。どちらも結果が同じで記事一覧からの投稿記事なら、Table of Contents Plus下、h2上にに表示されます。

      1回目の投稿をする前に試してみた結果、ウィジェットの広告をつけて更にカスタマイズすれば投稿記事の目次の上下に表示されたので、何でかなぁ?っと思った事をいまさらながら補足しますね。

      ウィジェットでの広告表示位置ですが、固定ページは目次上に。投稿記事だと私の環境では目次下のh2タグ前に来てします。

      ファイルを編集したのは、以前h2タグ上の目次Table of Contents Plus上に来ていたので、カスタマイズすれば上に来るかと思ってやりました。

      それから、返信はメールに届くとばかり思いこんで、こちらからの連絡が遅くなり失礼しました。403対策は助かります!以降使わせていただきます^^

      内容に不足があれば申し訳ないです。ご回答お願します。

    • #49262
      アバター画像わいひら
      キーマスター

      なるほど。そういうことだったんですね。

      ブレる、最新バージョンで、TOCの上に出るように仕様を変更してみました。
      https://wp-simplicity.com/simplicity2-4-5/
      よかったら一旦最新版を試してみていただければと思います。

    • #49273
      かうたっく
      ゲスト

      わいひらさん!ムチャクチャありがとうございます^^

      TOC使ってない人もいるでしょうけど、そのような仕様に変更してもらえて嬉しいばかりです!

      お手数かけてしまいましたけど、感謝です^^

4件の返信スレッドを表示中
  • トピック「広告の位置、カスタマイズでh2タグ前ではなく目次前に設置したい」には新しい返信をつけることはできません。
スポンサーリンク
アドセンス(大)
アドセンス(大)