get_extended() — возвращает по отдельности контент до и после тега

Функция возвращает массив $content (например), состоящий из трех элементов:

  • $content['main'] — то, что находится до тега <!‐‐more‐‐> (можно назвать это анонсом записи),
  • $content['extended'] часть содержимого поста, которая находится после тега <!‐‐more‐‐>,
  • $content['more_text'] текст ссылки перехода к полной версии поста. Например, если тег <!‐‐more‐‐> у вас имеет следующий вид <!‐‐more подробнее‐‐>, то значением данного элемента массива будет «подробнее». По умолчанию — «(далее…)»
get_extended($post)
$post
(строка) содержимое поста (контент)

Пример

// к примеру выведем 5 постов отсортированных по количеству комментариев
$q = new WP_Query('posts_per_page=5&orderby=comment_count');
while( $q->have_posts() ): $q->the_post();
    $content = get_extended(get_the_content());
    the_title('<h3>','</h3>'); // заголовок в тегах <h3>
    echo '<p>' . $content['main'];
    echo ($content['more_text']) ? '<a href="' . get_permalink() . '">' . $content['more_text'] . '</a></p>' : '';
endwhile;
wp_reset_postdata();

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: