get_extended()
Разделяет контент на 2 части до тега <!--more--> и после него. Возвращает массив с полученными частями.
После второго тире и перед словом "more" не должно быть пробела:
- Верно:
<!--more--> - НЕ верно:
<!-- more-->
После слова "more" может быть текст или пробелы (использование ссылок запрещается).
<!‐‐more подробнее‐‐>
Текст станет анкором ссылки. Заменит "(далее…)".
Хуков нет.
Возвращает
Строку[]. Массив с данными:
Array ( [main] => текст до more [extended] => текст после more [more_text] => (далее…) // если more указан так: <!‐‐more подробнее‐‐>, то тут будет "подробнее" а не "(далее…)" )
Использование
$parts = get_extended( $post_content );
- $post_content(строка) (обязательный)
- Контент поста, в котором есть <!--more--> и который нужно разделить.
Примеры
#1 Выведем цитату из последних постов
Если нужно вывести последние записи на блоге, но вывести нужно только часть текста до тега <!--more-->, используйте такой код:
<ul>
<?php
global $post;
$myposts = get_posts( array( 'numberposts'=>5 ) );
foreach( $myposts as $post ){
setup_postdata( $post );
$parts = get_extended( $post->post_content ); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</br>
<?php echo apply_filters('the_content', $parts['main'] ); // часть до тега more ?>
</li>
<?php
}
wp_reset_postdata();
?>
</ul> #2 Выведем рекламу сразу после тега <!--more-->
Допустим нам нужно вывести рекламный блок после тега <!--more-->, на отдельной странице (файл single.php). Для этого заменим the_content() на такой код:
<?php
global $post;
$content_parts = get_extended( $post->post_content );
echo apply_filters('the_content', $content_parts['main']);
echo "Рекламный код здесь";
echo apply_filters('the_content', $content_parts['extended']);
?>
Список изменений
| С версии 1.0.0 | Введена. |