Intereting Posts
Консультация для начинающих Если есть несколько шаблонов страниц Получение изображения по почте Выполнить короткий код в коротком коде Порядок DESC не работает при показе только дочерних категорий Как отключить активацию учетной записи в WPMU, а затем зарегистрировать пользователя сразу? Невозможно отредактировать раздел «Настройка», а раздел «Виджет» заполняет неизвестный код Каков наилучший практический процесс для нового веб-сайта и поддержания текущего рейтинга SEO? Как отобразить страницу сведений о будущих (запланированных) сообщениях Использование WordPress в качестве API Разрешить пользователям выбирать категории Как очистить загруженное имя файла из плагина? Вывод короткого кода прикручивается, когда символ стрелки «<» присутствует в содержимом защищать отправленные пользователем сообщения другие страницы, не отображающиеся после перемещения сайта wordpress на живой сервер

создать страницу, которая отображает список категорий title + короткое описание?

У меня есть код, который проходит через все категории и:

1. Организовать их по иерархии (родительской) категории и ее дочерним категориям

2.echo заголовки + краткое описание каждой категории + добавить ссылку «подробнее» к полному содержимому этой категории.

3. Нажмите, чтобы прочитать больше одной из дочерней категории, должно было привести к этой странице категории с полным описанием содержимого

4 проверяет, есть ли у них сообщения или нет.

5.displys список сообщений (выдержка + дополнительная ссылка), которые относятся к этой категории

теперь, когда пользователь нажимает на одну из дочерних категорий (см. дополнительную ссылку), это приводит к другой странице, которая показывает только эту категорию, с или без сообщений, но я хочу, чтобы она теперь отображала полное описание этой категории, а не только короткую описание ..

Я думал, что если бы у меня был способ добавить уникальный класс, и по этой цели страницы с одной категорией (дочерняя категория), я могу решить это /, это правильный путь?

код в категории.php

<?php $CategoryPar = get_category( get_query_var( 'cat' ) ); $cat_id = $CategoryPar->cat_ID; $args = array( 'orderby' => 'name', 'child_of' => $cat_id, 'hide_empty' => FALSE, 'order' => 'ASC' ); $Ecategories = get_categories($args); echo'<div class="cat-sub-title">'; foreach($Ecategories as $Ecategory) { echo '<p><a href="' . get_category_link( $Ecategory->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $Ecategory->name ) . '" ' . '>' . $Ecategory->name.'</a> </p> '; echo '<div class="cat-sub-title-desc">'. $Ecategory->description . '</div>'; } echo'</div>'; ?> <?php if( category_has_children( $cat ) == false) : ?> <?php get_template_part( 'loop' );?> <?php endif; ?> 

и фильтр в functions.php

 add_filter( 'category_description', 'cyb_trim_category_desc', 10, 2 ); function cyb_trim_category_desc( $desc, $cat_id ) { // wp_trim_words( $text, $num_words = 55, $more = null ); $desc = wp_trim_words( $desc, 55, '...<p class="wrap-more-link"><a class="more-link" href="' . get_category_link( $cat_id ) . '">' . __("Read more >>", "text-domain" ) . '</a></p>' ); return $desc; } 

Первое изображение – нажмите на одну из категорий в главном меню, чтобы привести пользователя на эту страницу (это не страница шаблона)

http://img.wordpressask.com/categories/24eyyxc.png

второе изображение – нажатие на одну из прочитанных ссылок на дочерние категории на предыдущей странице приведет к этой странице – у этой дочерней категории нет сообщений, я хочу, чтобы она отображала полную длину описания. Это классы body class = "archive категория категории – вечная категория в категории-23

http://img.wordpressask.com/categories/30sin7t.png

Вам просто нужно добавить какое-то условное выражение для фильтра или нет. Например, если вы не хотите применять обрезку на страницах архива категорий, одним из возможных решений может быть:

 add_filter( 'category_description', 'cyb_trim_category_desc', 10, 2 ); function cyb_trim_category_desc( $desc, $cat_id ) { // Apply only if we are not in category archive template if( ! is_category() ) { // wp_trim_words( $text, $num_words = 55, $more = null ); $desc = wp_trim_words( $desc, 55, '...<p class="wrap-more-link"><a class="more-link" href="' . get_category_link( $cat_id ) . '">' . __("Read more >>", "text-domain" ) . '</a></p>' ); } return $desc; } 

Или, если вы хотите применить обрезку только к определенному шаблону страницы:

 add_filter( 'category_description', 'cyb_trim_category_desc', 10, 2 ); function cyb_trim_category_desc( $desc, $cat_id ) { // Apply only if we the current page use my-page-template.php if( is_page_template( 'my-page-template.php' ) ) { // wp_trim_words( $text, $num_words = 55, $more = null ); $desc = wp_trim_words( $desc, 55, '...<p class="wrap-more-link"><a class="more-link" href="' . get_category_link( $cat_id ) . '">' . __("Read more >>", "text-domain" ) . '</a></p>' ); } return $desc; } 

Вам просто нужно определить, когда вы хотите применить обрезку и применить условное условие .

Возможная проблема заключается в том, что вы используете category.php для списка категорий. Этот шаблон предназначен для отображения списка сообщений, относящихся к какой-либо категории, и вы должны использовать его для этого. Вы должны создать список категорий в другом файле шаблона, возможно, настраиваемый шаблон страницы , так что вы можете использовать is_page_template() условно, как в последнем примере выше.

ОБНОВИТЬ

Как я уже говорил, вам следует избегать использования файла шаблона category.php для перечисления ваших категорий. Файл шаблона category.php предназначен для отображения сообщений, относящихся к определенной категории, и вы можете столкнуться с проблемами, потому что используете их для других целей.

Например, в изображении, добавленном к вопросу, я могу видеть класс category-2 в элементе body. Это означает, что WordPress сделал запрос на получение сообщений из категории с ID = 2, но затем, когда шаблон category.php достигнут, вы потратили впустую этот запрос и сделали еще один список категорий. Это трата ресурсов, которые стоят денег; Кроме того, вы можете столкнуться с проблемами, такими как вы exprmenting. Что произойдет, если категория с ID = 2 не имеет сообщений? Какова логика этой ситуации в вашей теме / плагинах / ядре WordPress?

Вместо этого вы должны использовать конкретный файл шаблона страницы для создания списка категорий. Например, вы можете создать шаблон page-categories-list.php:

 <?php /** * Template Name: Categories list page */ // Here the code to build the categories list ?> 

Теперь создайте новую страницу, выберите шаблон «Категории списка страниц» и внесите условное обозначение в фильтр для описания категории:

 add_filter( 'category_description', 'cyb_trim_category_desc', 10, 2 ); function cyb_trim_category_desc( $desc, $cat_id ) { // Apply only if we the current page use my-page-template.php if( is_page_template( 'page-categories-list.php' ) ) { // wp_trim_words( $text, $num_words = 55, $more = null ); $desc = wp_trim_words( $desc, 55, '...<p class="wrap-more-link"><a class="more-link" href="' . get_category_link( $cat_id ) . '">' . __("Read more >>", "text-domain" ) . '</a></p>' ); } return $desc; } 

Теперь у вас должен быть список категорий категорий с полным списком описания и списком категорий с полным описанием и без проблем, если в категории есть сообщения или нет. И что еще более важно, не тратя ресурсы на запросы, которые вы не собираетесь использовать.