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 | Введена. |