Как сделать, чтобы шаблон категории отображал полные записи вместо частичных?
Я использую WordPress 3.0.1 с темой Twenty Ten. Я пытаюсь изменить способ отображения записей в представлении категории (например, по адресу типа mywebsite.com/category/mycategory). В настоящее время записи в категории показывают только первую часть поста, но я хочу изменить это, чтобы отображался весь текст.
В файле шаблона категории (category.php) есть несколько строк кода, которые, похоже, отвечают за генерацию данных категории:
/* Запускаем цикл для страницы категории, чтобы вывести записи.
* Если вы хотите переопределить это в дочерней теме, то включите файл
* под названием loop-category.php, и он будет использоваться вместо этого.
*/
get_template_part( 'loop', 'category' );
?>
Поскольку в комментариях упоминается настройка дочерней темы, я последовал этим инструкциям (через этот ответ), чтобы создать дочернюю тему и добавить свою пользовательскую функциональность.
Из комментариев я понял, что мне нужно создать файл loop-category.php с моей собственной реализацией, но я не знаю, какой код нужно поместить в этот файл. Что мне нужно добавить в loop-category.php, чтобы в категориях отображались полные записи блога?
ПРИМЕЧАНИЕ: Хотя я использую WordPress уже довольно давно, это мое первое погружение в кастомизацию тем. Любая помощь будет очень ценной.

@Ben,
Если вы посмотрите на строку 132 файла loop.php в теме Twentyten, вы найдёте условное выражение, которое указывает WordPress отображать the_excerpt только в архивах категорий. Сразу после <?php else : ?>
находится код, который отвечает за отображение всех записей, которые не находятся на странице архива, в категории asides или в категории gallery. (Категории asides и gallery задаются в начале loop.php)
<?php if ( is_archive() || is_search() ) : // Отображаем краткое содержание только для архивов и поиска. ?>
<div class="entry-summary">
<?php the_excerpt(); ?>
</div><!-- .entry-summary -->
<?php else : ?>
<div class="entry-content">
<?php the_content( __( 'Читать далее <span class="meta-nav">→</span>', 'twentyten' ) ); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Страницы:', 'twentyten' ), 'after' => '</div>' ) ); ?>
</div><!-- .entry-content -->
<?php endif; ?>
В вашем файле loop-category.php проще всего скопировать и вставить весь файл loop.php и изменить приведённый выше участок кода на:
<?php if ( is_search() ) : // Отображаем краткое содержание только для поиска. ?>
<div class="entry-summary">
<?php the_excerpt(); ?>
</div><!-- .entry-summary -->
<?php else : ?>
<div class="entry-content">
<?php the_content( __( 'Читать далее <span class="meta-nav">→</span>', 'twentyten' ) ); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Страницы:', 'twentyten' ), 'after' => '</div>' ) ); ?>
</div><!-- .entry-content -->
<?php endif; ?>
Обратите внимание, что мы просто удалили is_archive
из условного выражения, и теперь архивы категорий будут отображаться с помощью кода после else, который содержит the_content
вместо the_excerpt
.

Это действительно круто; всё сработало идеально! Сначала я не понял, что нужно скопировать всё содержимое loop.php в loop-category.php. Кажется, я начинаю понимать, как работают дочерние темы, и это довольно интересная концепция.

Мы могли бы просто изменить loop.php, но эти изменения перезаписались бы при следующем обновлении.

Можно было бы так же кастомизировать loop.php
— файлы в дочерней теме не перезаписываются при обновлении родительской темы (в этом, собственно, и смысл :). Кроме того, если использовать loop-category.php
, то условный оператор if ( is_search() )...
можно вообще убрать, потому что этот цикл будет вызываться только на страницах категорий.

Я просто удалил второе вхождение "is_archive() ||" из файла loop.php, и теперь полные записи отображаются на страницах категорий (category/catslug). Мне не пришлось создавать файл loop-category.php. Я бы не смог это сделать без инструкций Chris_O. Спасибо, Крис!!
