Как заставить шаблон категории отображать полные сообщения вместо частичных сообщений?
Я использую Wordpress 3.0.1 с темой Двадцать десять. Я пытаюсь изменить способ отображения сообщений в представлении категории (т. Е. Перейдя по URL-адресу, например mywebsite.com/category/mycategory). В настоящее время сообщения в представлении категории показывают только первую часть сообщения, но я хотел бы изменить это, чтобы оно показывало все целиком.
В шаблоне категории (category.php ) файл, есть несколько строк кода, которые выглядят так, как будто они отвечают за создание данные категории:
/* Run the loop for the category page to output the posts.
* If you want to overload this in a child theme then include a file
* called loop-category.php and that will be used instead.
*/
get_template_part( 'loop', 'category' );
?>
Поскольку в комментариях упоминается настройка дочерней темы, я пошел дальше и последовал этим инструкциям (через этот ответ), чтобы настроить дочернюю тему, чтобы я мог добавить свои пользовательские функции.
Я вижу из комментариев, что я должен создать файл под названием loop-category.php с моей пользовательской реализацией, но я не знаю, какой код мне нужно поместить в этот файл. Что мне нужно добавить к loop-category.php чтобы отобразить представления категорий с полными сообщениями в блоге?
ПРИМЕЧАНИЕ: Хотя я уже довольно давно использую Wordpress, это мое первое погружение в настройку темы. Любая помощь будет очень признательна.
2 answers
@ Бен,
Если вы посмотрите на строку 132 из loop.php в Twentyten вы найдете условное выражение, которое говорит WordPress отображать the_excerpt только в архивах категорий. Прямо под этим после <?php else : ?>
будет отображаться все записи, которые не находятся на странице архива, в категории "Сторонние" или в категории "галерея". (Дополнительные разделы и категории галерей предназначены для начала loop.php)
<?php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
<div class="entry-summary">
<?php the_excerpt(); ?>
</div><!-- .entry-summary -->
<?php else : ?>
<div class="entry-content">
<?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'twentyten' ) ); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
</div><!-- .entry-content -->
<?php endif; ?>
В вашем loop-category.php файл самый простой что нужно сделать, так это скопировать и вставить весь loop.php файл и измените раздел кода выше на:
<?php if ( is_search() ) : // Only display excerpts for archives and search. ?>
<div class="entry-summary">
<?php the_excerpt(); ?>
</div><!-- .entry-summary -->
<?php else : ?>
<div class="entry-content">
<?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'twentyten' ) ); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
</div><!-- .entry-content -->
<?php endif; ?>
Вы заметите, что мы удалили is_archive
только из условного оператора, поэтому теперь архивы категорий будут отображаться с использованием кода после оператора else, который содержит the_content
в отличие от the_excerpt
.
Я только что удалил второй экземпляр "is_archive()||" из loop.php и получил каждый полный пост, чтобы он отображался на странице категории/catslug. Мне не нужно было создавать loop-category.php файл. Я не смог бы этого сделать без инструкций Криса. Спасибо, Крис!!