Функция GET_EXTENDED() в WordPress
Функция get_extended()
делит содержимое поста на две части: до и после комментария <!--more-->
. Она возвращает массив с получившимися частями текста. Давайте разберем, как она работает.
Структура функции
Параметр:
- Не должно быть пробела после двух тире и перед словом 'more'.
- После слова 'more' может следовать текст или пробелы, но они не будут учитываться.
Возврат:
Функция возвращает массив с тремя элементами:
- main: текст, который находится до
<!--more-->
- extended: текст, который находится после
<!--more-->
- more_text: если указано что-то после `();
Пример возврата:
Array(
[main] => 'какой-то текст', // текст до тега <!--more-->
.
[extended] => 'какой-то текст', // текст после тега <!--more-->
.
[more_text] => '' // если указано более: ,
// то здесь будет "прочитать дальше…"
)
Использование функции
Чтобы использовать функцию, вызовите её следующим образом:
$parts = get_extended( $post_content );
- $post_content (строка, об��зательный параметр): Содержимое поста, которое содержит комментарий
<!--more-->
и которое вы хотите разделить.
Примеры использования
Пример 1: Отображение первой части последних 5 постов
Если вы хотите показать последние посты на блоге, но только часть текста до тега <!--more-->
, используйте следующий код:
Пример 2: Отображение рекламы сразу после тега <!--more-->
Предположим, вам нужно отобразить рекламный блок сразу после тега <!--more-->
на странице одного поста (в файле single.php). Для этого замените the_content()
следующим кодом:
post_content );
echo apply_filters( 'the_content', $content_parts['main'] );
echo "код для рекламы здесь";
echo apply_filters( 'the_content', $content_parts['extended'] );
?>
Изменения
С версии 1.0.0 функция была введена в WordPress.
Код функции
В 6.7.2 функция get_extended()
выглядит следующим образом:
function get_extended( $post ) {
// Нахождение новых стилей более ссылок.
if ( preg_match( '//', $post, $matches ) ) {
list($main, $extended) = explode( $matches[0], $post, 2 );
$more_text = $matches[1];
} else {
$main = $post;
$extended = '';
$more_text = '';
}
// Удаление пробелов в начале и конце.
$main = preg_replace( '/^[s]*(.*)[s]*$/', '1', $main );
$extended = preg_replace( '/^[s]*(.*)[s]*$/', '1', $extended );
$more_text = preg_replace( '/^[s]*(.*)[s]*$/', '1', $more_text );
return array(
'main' => $main,
'extended' => $extended,
'more_text' => $more_text,
);
}
Заключение
Функция get_extended()
— это полезный инструмент для управления содержимым постов в WordPress, позволяющий легко разделять текст и добавлять дополнительные элементы, такие как реклама, в нужные места.