WordPress: Как выводить посты в тегах — полностью, в рубриках кратко и с кнопкой далее

AdmiraПро WordPress1 Comment

Какие изменения нужно ввести в тему WordPress Diary/Notebook, чтоб довести до ума идею ежедневника на этой теме.

О том, как выводить краткое содержание поста в ВордПресс уже достаточно подробно было здесь

В теме WordPress Diary/Notebook, по сути, весь код вывода сосредоточен в одном файле основного шаблона — index.php

И так как это снова задача реализации ежедневника, поэтому пришлось менять еще и порядок вывода записей. Как вывести записи в обратном порядке — тоже весьма подробно здесь

В единственном файле основного шаблона для вывода различных лент: архивов, категорий, авторов, тегов просто стоит проверка, что за   тип ленты, и там уже соответствующий вывод данных. Для ежедневника нас интересуют  только категории и теги, поэтому для начала будем делать выборку постов в обратном порядке:

Для категорий вместо

<?php if(is_category()) { ?>
<div id="archive-title">

Поставить так:

<?php if(is_category()) { ?>
<?php query_posts($query_string . "&order=ASC"); ?>
<div id="archive-title">

Для тегов (меток) вместо

<?php if(is_tag()) { ?>
<div id="archive-title">

Поставить так:

<?php if(is_tag()) { ?>
<?php query_posts($query_string . "&order=ASC"); ?>
<div id="archive-title">

Разобравшись с порядком, немного ниже есть вывод самого поста. И изначально это выглядит так:

<section class="postText">
<?php the_content('Read more &raquo;'); ?>
</section>

НО так как у меня ни в одном посте нет тега «Далее» (тега — в смысле HTML-разметки, оно же MORE, а не метки и ключевого слова), то во всех лентах посты выводятся целиком.

Мне хотелось бы для категорий (месяцы) выводить посты в ленте кратко, но для отдельной метки, тега — полное содержание поста в ленте.

Поэтому добавим небольшую проверку:

<section class="postText">
<?php if(is_category()) { ?>
<?php $content = get_the_content();
$trimmed_content = wp_trim_words( $content, 40, '<a href="'. get_permalink() .'"> <b style="color:red">...Далее</b></a>' );
echo $trimmed_content; ?>
<?php } else {
the_content('Read more &raquo;'); } ?>
</section>

Здесь получается, что если это  категория…
мы берем каждый пост $content = get_the_content();
обрезаем функцией wp_trim_words на 40 слов и добавляем в конце ссылочку «Далее» — красненькую, чтоб было видно) И не забываем ее вывести на экран. Вот так:
$trimmed_content = wp_trim_words( $content, 40, '<a href="'. get_permalink() .'"> <b style="color:red">...Далее</b></a>' );
echo $trimmed_content;

ВОТ и все!

P.S. Особенно приятно делать это на два различных ежедневника сразу, реализованных на WordPress-мультисайт. Я  меняла файл шаблона только один раз в консоли управления сетью в редакторе тем.

 

One Comment on “WordPress: Как выводить посты в тегах — полностью, в рубриках кратко и с кнопкой далее”

  1. Pingback: Кнопка "Сегодня" для ежедневника на WordPress | mArjArI. Создание сайтов

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

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