[Помогите] Можно ли с помощью functions.php вставить адсенс код в пост?

Тема в разделе "Wordpress", создана пользователем Danilka71, 17 июл 2011.

Статус темы:
Закрыта.
Модераторы: Sorcus
  1. Danilka71

    Danilka71 Постоялец

    Регистр.:
    17 мар 2009
    Сообщения:
    127
    Симпатии:
    7
    Вордпресс версия 3.2.1
    Можно ли с помощью functions.php вставить код в посты?
    А именно нужно вставить код адсенса в пост после определенного количества символов от начала поста?
    Я всегда использовал плагин AdSense Integrator, но этот плагин небольшой процент вставляет свой код. Я там в коде поудалял ненужные элементы :)
    Но замечаю, что все равно, почемуто, в середине поста код не вставляется.
    Поступил следующим образом, в начало поста и в конец сталвяю код прямо в шаблоне вордпреса, а вот в середине не могу....
     
  2. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    Для середины поста можно например подсчитать количество символов и поделить на два будет середина, дальше от середины искать первую точку будет конец предложения и там вставлять код рекламы. Для плагина и для functions.php код один и тот же, делаем фильтр для the_content
    PHP:
    <?php
    //Plugin Name: Реклама в середине поста

    function post_ad($post){
        
        
    $reklama '<div>reklama</div>';
        
    $count mb_strlen($post);
        
    //ищем позицию точки после середины текста
        
    $pos mb_strpos($post'.'$count/2);
        
    //после найденной точки вставляем рекламу
        
    $post mb_substr($post0$pos+1).$reklama.mb_substr($post$pos+1);
        return 
    $post;
    }
    add_filter('the_content''post_ad'1);

    ?>
     
    Danilka71 нравится это.
  3. Alex

    Alex

    Регистр.:
    24 мар 2006
    Сообщения:
    563
    Симпатии:
    588
    А можно этот плагин настроить, чтобы он код выполнял?
    Вот это нужно вместо рекламы, это перелинковка:
    PHP:
    <?php
    function show_previous_posts_from_category ($the_post_id$the_category_id 0$post_num) {

      
    $num 0;
      global 
    $wpdb;

      
    $sql "SELECT wposts.*
      FROM 
    $wpdb->posts wposts
      LEFT JOIN 
    $wpdb->term_relationships ON (wposts.ID = $wpdb->term_relationships.object_id)
      LEFT JOIN 
    $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
      WHERE 
    $wpdb->term_taxonomy.taxonomy = 'category'
      AND 
    $wpdb->term_taxonomy.term_id = '$the_category_id'
      AND wposts.post_status = 'publish'
      AND wposts.post_type = 'post'
      AND wposts.ID < '
    $the_post_id'
      ORDER BY wposts.ID DESC
      LIMIT 
    $post_num";

      
    $result $wpdb->get_results($sqlOBJECT);
      global 
    $post;
    ?>
    <ul>
    <?php
      
    foreach ($result as $post) {
        
    setup_postdata($post);
    ?>
      <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
    <?php
        $num
    ++;
        
    $save_ids[] = $post->ID;
      }
      if ( 
    $num $post_num || !$result ) {
        
    $need_more $post_num-$num;
        
    $save_ids[] = $the_post_id;
        
    $save_ids join (','$save_ids);
        
    $more_posts get_posts("numberposts=$need_more&category=$the_category_id&exclude=$save_ids");
        foreach (
    $more_posts as $post){
          
    setup_postdata($post);
    ?>
      <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
    <?php
        
    }
      }
    ?>
    </ul>
    <?php ?>

    <?php
      $the_cat 
    get_the_category();
      
    $the_cat_id $the_cat[0]->cat_ID;
      
    show_previous_posts_from_category($post->ID$the_cat_id5);
      
    wp_reset_query();
    ?>
     
Статус темы:
Закрыта.