WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Фото записи после первого абзаца с рекламой

Есть код

<?php if ( function_exists('has_post_thumbnail') and has_post_thumbnail()) { ?>
				<figure class="entry-image imgholder">    
				<?php 
				if ( MultiPostThumbnails::has_post_thumbnail(get_post_type(), 'secondary-image') ) {
					MultiPostThumbnails::the_post_thumbnail(get_post_type(), 'secondary-image', NULL,  'single_thumb');
					} else { 
							the_post_thumbnail('single_thumb');
							} ?>
				</figure>
				<?php } ?>

Он используется для вывода изображения постав в single.php

Мне же нужно его оттуда убрать и написать функцию, которая бы выводила этот код песле первого абзаца и добавляла после этого блока код рекламы.
Как это реализовать?

Заметки к вопросу:
naikyavd 7.8 лет назад

Полученный результат(миниатюры) в переменную, разбивать content и далее вставлять переменную между разбитым контентом.

0
stahov
7.8 лет назад
  • 0
    Kama9621

    Получите этот код в переменную (не выводите на экран).

    Далее добавьте к нему код рекламы.

    Далее используйте код из этой статьи, чтобы добавить все это в контент.

    Можно так:

    <?php ob_start(); ?>
    <?php if ( function_exists('has_post_thumbnail') and has_post_thumbnail()) { ?>
    				<figure class="entry-image imgholder">    
    				<?php 
    				if ( MultiPostThumbnails::has_post_thumbnail(get_post_type(), 'secondary-image') ) {
    					MultiPostThumbnails::the_post_thumbnail(get_post_type(), 'secondary-image', NULL,  'single_thumb');
    					} else { 
    							the_post_thumbnail('single_thumb');
    							} ?>
    				</figure>
    				<?php } ?>
    
    <?php
    
    // получим все в переменную
    $moykod = ob_get_clean();
    
    // Добавим рекламы
    $moykod .= 'Код рекламы';
    

    Теперь сунем все это в функцию kama_content_advertise()

    <?php
    
    /**
     * Вставляет рекламный блок в первый перенос строки или первый закрывающий тег </p> или </table>
     * спустя определенное количество символов.
     *
     * @param number $nu - спустя сколько символов искать перенос строки и вставлять рекламу? 400 - по умолчанию.
     *
     * version: 0.2
     */
    function kama_content_advertise( $text, $nu = false ){
    	if( ! is_singular() ) return $text; // убедимся что мы на отдельной странице
    
    	if( ! $nn ) $nu = 400;
    
    	// Код рекламы
    	ob_start(); ?>
    	<?php if ( function_exists('has_post_thumbnail') and has_post_thumbnail()) { ?>
    					<figure class="entry-image imgholder">    
    					<?php 
    					if ( MultiPostThumbnails::has_post_thumbnail(get_post_type(), 'secondary-image') ) {
    						MultiPostThumbnails::the_post_thumbnail(get_post_type(), 'secondary-image', NULL,  'single_thumb');
    						} else { 
    								the_post_thumbnail('single_thumb');
    								} ?>
    					</figure>
    					<?php } ?>
    
    	<?php
    
    	// получим все в переменную
    	$adsense = ob_get_clean();
    
    	// Добавим рекламы
    	$adsense .= 'Код рекламы';  
    
    	// Раскомментируйте, если нужно вставить блок сразу перед тегом <!--more-->
    	# return str_replace('<!--more-->', $adsense.'<!--more-->', $text);
    
    	return preg_replace('~[^^]{'. $nn .'}.*?(?:\r?\n\r?\n|</p>|</table>)~s', "\${0}$adsense", trim( $text ), 1);
    }
    
    add_filter('the_content', 'kama_content_advertise', -10 );

    Разумеется то что получилось не тестировал, но делается примерно так, может где-то что-то подправить нужно будет...

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация