Функция GET_EXTENDED() в WordPress: описание, примеры, кодификация

Функция 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-->, используйте следующий код:

    5 ) ); foreach( $myposts as $post ){ setup_postdata( $post ); $parts = get_extended( $post->post_content ); ?>

Пример 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, позволяющий легко разделять текст и добавлять дополнительные элементы, такие как реклама, в нужные места.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *