web-dev-qa-db-ja.com

投稿コンテンツ間にGoogle広告を表示する

テキストコンテンツの間にGoogleによる広告を表示したいのですが、1番目のパラの後に3番目の広告を3番目のパラグラフの後に、最後のパラグラフの最後に1つ表示します。

私はsingle.phpで変更しなければならないことを知っていますが、phpの初心者であるためにこれを行うことができません。

誰かが私を助けることができれば本当に役立つでしょう。ありがとう。

1
Yasser

ショートコードまたは the_contentフィルタ を使用できます。私はthe_contentフィルタがあなたの投稿に文字列を導入しないのでより良いと思います、それでコンテンツはエクスポートされ必要ならば他のプラットフォームで使用されることができます。たとえば、最初のパラグラフの後にAdSenseのブロックを表示するには、次のように入力します。

 add_filter( 'the_content', 'tbn_ads_inside_content' );
 function tbn_ads_inside_content( $content ) {

      //We don't want to modify the_content in de admin area
      if( !is_admin() ) {
          $ads = "<p>your_ads_code</p>";
          $p_array = explode('</p>', $content );
          $p_count = 1;

          if( !empty( $p_array ) ){

              array_splice( $p_array, $p_count, 0, $ads );
              $output = '';

              foreach( $p_array as $key=>$value ){

                  $output .= $value;

               }
          }

      }

      return $output;

 }
3
cybmeta

これは私が投稿の2番目の段落の後にウィジェットを追加するために使用する関数です。これは最初の投稿と単一の投稿のみですので、すべての投稿でこれを表示する必要がある場合は少し微調整する必要があります。あなたはあなたのニーズに合うようにこれを修正することができるはずです。お役に立てれば

// Add advertising widget within the firts post and single posts
function pietergoosen_insert_content_after_second_paragraph_filter( $content ) {
    static $first;
    $first = (!isset($first)) ? true : false;
    if (true == $first) {
      ob_start();
      echo '<div class="widget-box">';
         dynamic_sidebar( 'sidebar-19' );
         echo '</div><!-- end .widget-box -->';

      $new_content = ob_get_clean();
      if ( ! is_admin() ) {
          return pietergoosen_insert_content_after_second_paragraph( $new_content, 2, $content );
      }
    }
    return $content;
}
add_filter('the_content','pietergoosen_insert_content_after_second_paragraph_filter');

// Paragraph explode and insert
function pietergoosen_insert_content_after_second_paragraph( $new_content, $paragraph_id, $content ) {
    $closing_p = '</p>';
    $paragraphs = explode( $closing_p, $content );
    foreach ($paragraphs as $index => $paragraph) {
        if ( trim( $paragraph ) ) {
            $paragraphs[$index] .= $closing_p;
        }
        if ( $paragraph_id == $index + 1 ) {
            $paragraphs[$index] .= $new_content;
        }
    }
    return implode( '', $paragraphs );
}
1
Pieter Goosen