Поддержка Проблемы и решения Не применять функцию к AMP страницам

  • Доброго дня! Я добавляю код рекламы после второго абзаца с помощью функции:

    function adsense_ad_content( $content ) { 
      if( !is_single() ) 
      return $content; 
      $paragraphAfter = 2;
      $content = explode ( "</p>", $content ); 
      $new_content = ''; 
       for ( $i = 0; $i < count ( $content ); $i ++ ) { 
       if ( $i == $paragraphAfter ) { 
      $new_content .= ' <ins class="adsbygoogle"
         style="display:block; text-align:center;"
         data-ad-layout="in-article"
         data-ad-format="fluid"
         data-ad-client="ca-pub-111111111111"
         data-ad-slot="1111111111"></ins>
    <script>
         (adsbygoogle = window.adsbygoogle || []).push({});
    </script> '; 
    } 
      $new_content .= $content[$i] . "</p>"; 
    } 
       return $new_content; }

    У страниц есть AMP версии URL которых заканчивается «/amp». Как доработать эту функцию, чтобы рекламный код не отображался на AMP страницах? Сейчас он выводится на всех страницах.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • 
    if (function_exists( 'is_amp_endpoint' ) && is_amp_endpoint()) {
        // do stuff
    }
    

    Реализовал, но возможно есть лишний код, прошу подсказки корректно или нет сделано.
    Для моего плагина функция выглядит так:

    if ( function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint() ) {
    }

    Итог для моей задачи:

    add_filter( 'the_content', 'adsense_ad_content' ); 
    function adsense_ad_content( $content ) { 
      if ( function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint() ) {
      return $content; }
      if( !is_single() ) 
      return $content; 
      $paragraphAfter = 2;
      $content = explode ( "</p>", $content ); 
      $new_content = ''; 
       for ( $i = 0; $i < count ( $content ); $i ++ ) { 
       if ( $i == $paragraphAfter ) { 
      $new_content .= ' <ins class="adsbygoogle"
         style="display:block; text-align:center;"
         data-ad-layout="in-article"
         data-ad-format="fluid"
         data-ad-client="ca-pub-111111111111111"
         data-ad-slot="111111111"></ins>
    <script>
         (adsbygoogle = window.adsbygoogle || []).push({});
    </script> '; 
    } 
      $new_content .= $content[$i] . "</p>"; 
    } 
       return $new_content; }
    • Ответ изменён 5 лет, 1 месяц назад пользователем roinmana.
    • Ответ изменён 5 лет, 1 месяц назад пользователем roinmana.
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Не применять функцию к AMP страницам» закрыта для новых ответов.