benmccormack
  • 0
Новичок

Как сделать так, чтобы в шаблоне категории отображались полные сообщения, а не частичные сообщения?

  • 0

Я использую WordPress 3.0.1 с темой Twenty Ten. Я пытаюсь изменить способ отображения сообщений в представлении «Категория» (например, перейдя по 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, это мое первое погружение в настройку темы. Любая помощь приветствуется.

Share
  1. какой-нибудь хороший опыт выбора категории php? panabar@yahoo.co.uk yahoo masseger свяжитесь со мной

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

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

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

      • 0
  2. @Бен,

    Если вы посмотрите на строку 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">&rarr;</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">&rarr;</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 .

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

    • 0

Оставить ответ

You must login to add an answer.