Title: Информация в середине поста
Last modified: 05.04.2021

---

# Информация в середине поста

 *  [rianovost](https://ru.wordpress.org/support/users/suryano11/)
 * (@suryano11)
 * [5 лет, 6 месяцев назад](https://ru.wordpress.org/support/topic/%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d0%b8%d1%8f-%d0%b2-%d1%81%d0%b5%d1%80%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5-%d0%bf%d0%be%d1%81%d1%82%d0%b0/)
 * День добрый уважаемые гуру WordPress!
    У меня появилась необходимость автоматически
   вставить информацию в середине поста, на данный момент похожая статья, в будущем
   может быть и реклама. По этому решил создать область виджета в данном участке.
   Первым делом создал область в файле widget-functions.php, (который создал сам
   и подключил к файле functions через include) область виджета таким образом :
 *     ```
       // область в постах
       if (function_exists('register_sidebar')){
          register_sidebar( array(
               'name'          => 'Область в постах', //название виджета в админ-панели
               'id'            => 'wsidebar-3', //идентификатор виджета
               'description'   => 'контент для постов', //описание виджета в админ-панели
               'before_widget' => '<div id="%1$s" class="widget %2$s">', //открывающий тег виджета с динамичным идентификатором
               'after_widget'  => '<div class="clear"></div></div>', //закрывающий тег виджета с очищающим блоком
               'before_title'  => '<span class="widget-title">', //открывающий тег заголовка виджета
               'after_title'   => '</span>',//закрывающий тег заголовка виджета
               ) );
       }
       ```
   
 * То есть фактически в файле functions. Но так, как одним созданием области недостаточно,
   нужно его вызвать `<?php dynamic_sidebar( 'wsidebar-3' ); ?>`в нужном месте, 
   а в моем случае в середине поста, то появилась проблема, ведь ` <?php
    the_content();`
   нельзя же делить пополам, если же вызывать функцию после, то виджет появляется
   после статьи, если перед, то соответственно, по этому мне пришлось зарегистрировать
   ещё одну функцию, позволяющего вставить информацию в середине поста :
 *     ```
       /*Как вставить информацию в середину статьи*/
       function wpse_ad_content( $content ) {
           if( !is_single() )
           return $content;
           $paragraphAfter = 3; // Номер абзаца, после которого нужно вставить данные
   
           $content = explode ( "</p>", $content );
           for ( $i = 0; $i < count ($content)-1; $i ++ ) {
               if ( $i == $paragraphAfter ) {
                 ?>
       <?php echo do_shortcode('<div class="rel_psts">[related_posts] 
       </div>'); ?>
       <?php dynamic_sidebar( 'wsidebar-3' ); ?>
   
           <?php
           }
           echo $content[ $i ] . "</p>";
           }
       }
       add_filter( 'the_content', 'wpse_ad_content' );
       ```
   
 * Где `<?php dynamic_sidebar( 'wsidebar-3' ); ?>` вызов виджета а `<?php echo do_shortcode(‘
   <div class=»rel_psts»>[related_posts]
    </div>’); ?>` вызов шорткода похожих записей
   в середине поста. А сама функция шорткода похожих записей :
 *     ```
       /* схожие записи шорткод для середины статьи */
       /* ------------------------------------- */
       function related_posts_shortcode( $atts ) {
       extract(shortcode_atts(array(
       'limit' => '1',
       ), $atts));
   
       global $wpdb, $post, $table_prefix;
   
       if ($post->ID) {
       $retval = '<ul><H3>ТАКЖЕ ЧИТАЮТ</H3><ul>';
       // Get tags
       $tags = wp_get_post_tags($post->ID);
       $tagsarray = array();
       foreach ($tags as $tag) {
       $tagsarray[] = $tag->term_id;
       }
       $tagslist = implode(',', $tagsarray);
   
       // Do the query
       $q = "SELECT p.*, count(tr.object_id) as count
       FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p WHERE tt.taxonomy ='post_tag' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id = p.ID AND tt.term_id IN ($tagslist) AND p.ID != $post->ID
       AND p.post_status = 'publish'
       AND p.post_date_gmt < NOW()
       GROUP BY tr.object_id
       ORDER BY count DESC, p.post_date_gmt DESC
       LIMIT $limit;";
   
       $related = $wpdb->get_results($q);
       if ( $related ) {
       foreach($related as $r) {
       $retval .= '<li><a title="'.wptexturize($r->post_title).'" href="'.get_permalink($r->ID).'">'.wptexturize($r->post_title).'</a></li>';
       }
       } else {
       $retval .= '
       <li>МЕСТО ВАШЕЙ РЕКЛАМЫ </li>';
       }
       $retval .= '<ul></ul>';
       return $retval;
       }
       return;
       }
       add_shortcode('related_posts', 'related_posts_shortcode');
       ```
   
 * Конечно, соответственно и задал стили, но здесь не об этом, а мой вопрос в следующем:
 * Как «заставить» функцию похожих записей выводить не только заголовок, а ещё и
   изображение записи?
 * Страница, с которой нужна помощь: _[[войдите](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fru.wordpress.org%2Fsupport%2Ftopic%2F%25D0%25B8%25D0%25BD%25D1%2584%25D0%25BE%25D1%2580%25D0%25BC%25D0%25B0%25D1%2586%25D0%25B8%25D1%258F-%25D0%25B2-%25D1%2581%25D0%25B5%25D1%2580%25D0%25B5%25D0%25B4%25D0%25B8%25D0%25BD%25D0%25B5-%25D0%25BF%25D0%25BE%25D1%2581%25D1%2582%25D0%25B0%2F%3Foutput_format%3Dmd&locale=ru_RU),
   чтобы увидеть ссылку]_

Просмотр 3 ответов — с 1 по 3 (всего 3)

 *  Модератор [Юрій](https://ru.wordpress.org/support/users/yube/)
 * (@yube)
 * [5 лет, 6 месяцев назад](https://ru.wordpress.org/support/topic/%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d0%b8%d1%8f-%d0%b2-%d1%81%d0%b5%d1%80%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5-%d0%bf%d0%be%d1%81%d1%82%d0%b0/#post-12209585)
 * Буду краток. [https://developer.wordpress.org/reference/functions/get_the_post_thumbnail/](https://developer.wordpress.org/reference/functions/get_the_post_thumbnail/)
 *  Автор [rianovost](https://ru.wordpress.org/support/users/suryano11/)
 * (@suryano11)
 * [5 лет, 6 месяцев назад](https://ru.wordpress.org/support/topic/%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d0%b8%d1%8f-%d0%b2-%d1%81%d0%b5%d1%80%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5-%d0%bf%d0%be%d1%81%d1%82%d0%b0/#post-12209588)
 * А где именно вставить функцию по вашей ссылке? Где бы не вставил выводит ошибку
   сайта. Может быть нужно «завернуть через какие-то теги в самой функции вывода
   похожих записей?
 *  Автор [rianovost](https://ru.wordpress.org/support/users/suryano11/)
 * (@suryano11)
 * [5 лет, 6 месяцев назад](https://ru.wordpress.org/support/topic/%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d0%b8%d1%8f-%d0%b2-%d1%81%d0%b5%d1%80%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5-%d0%bf%d0%be%d1%81%d1%82%d0%b0/#post-12209595)
 * Вообщем нужно вставить следующее выражение в функцию вывода похожих записей :
 *     ```
       <?php if ( has_post_thumbnail() ) { the_post_thumbnail('thumbnail'); }
       else { ?>
       <img src="<?php echo first_post_image() ?>" alt="<?php the_title(); ?>" />
       ```
   
 * Данное выражение позволяет вывести первую картинку, если не задано изображение.
   
   Но вывод ошибки
 * > PHP Parse error: syntax error, unexpected ‘thumbnail’ (T_STRING) in
 * Что то тут делаю топорно

Просмотр 3 ответов — с 1 по 3 (всего 3)

 Тема «Информация в середине поста» закрыта для новых ответов.

## Метки

 * [Первая картинка поста в похожие записи](https://ru.wordpress.org/support/topic-tag/%d0%bf%d0%b5%d1%80%d0%b2%d0%b0%d1%8f-%d0%ba%d0%b0%d1%80%d1%82%d0%b8%d0%bd%d0%ba%d0%b0-%d0%bf%d0%be%d1%81%d1%82%d0%b0-%d0%b2-%d0%bf%d0%be%d1%85%d0%be%d0%b6%d0%b8%d0%b5-%d0%b7%d0%b0%d0%bf%d0%b8%d1%81/)

 * Форум: [Проблемы и решения](https://ru.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 3 ответа
 * 2 участника
 * Последний ответ: [rianovost](https://ru.wordpress.org/support/users/suryano11/)
 * Последняя активность: [5 лет, 6 месяцев назад](https://ru.wordpress.org/support/topic/%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d0%b8%d1%8f-%d0%b2-%d1%81%d0%b5%d1%80%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5-%d0%bf%d0%be%d1%81%d1%82%d0%b0/#post-12209595)
 * Статус: нерешённая

## Темы

### Самые популярные темы

### Темы без ответов

### Без вопроса

### Решённые

### Нерешённые

### Все темы
