web-dev-qa-db-fra.com

Comment puis-je diffuser des annonces google entre les contenus de publication?

Je souhaite afficher les annonces de Google entre les contenus textuels, comme le montrent les annonces 3, une après le premier paragraphe, deuxième après le troisième paragraphe et une à la fin du dernier paragraphe.

Je sais que je dois modifier dans single.php mais étant novice en php, je suis incapable de le faire.

Ce serait vraiment utile si quelqu'un pouvait m'aider à le faire. Merci.

1
Yasser

Vous pouvez utiliser un shortcode ou un filtre the_content . Je pense que le filtre the_content est préférable, car vous n'introduisez aucune chaîne dans votre message, le contenu peut donc être exporté et utilisé sur d'autres plates-formes si nécessaire. Par exemple, pour afficher un bloc d'adsense après le premier paragraphe:

 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

Voici la fonction que j'utilise pour ajouter un widget après le deuxième paragraphe d'un article. Ceci concerne uniquement le premier article et les articles simples. Vous devrez donc légèrement le modifier si vous devez le montrer dans tous les articles. Vous devriez pouvoir modifier cela pour répondre à vos besoins. J'espère que cela t'aides

// 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