Intereting Posts
Несколько таксономий в одном правиле permalink wp_insert_post_data hook должен быть вызван перед обновлением db, но не Показать все сообщения из определенных категорий на странице Отображать персонализированный тип сообщения в шаблоне Как изменить get_the_excerpt (), когда post-format равно «quote»? Как изменить URL? Установка post_id для single.php на основе URL без перенаправления Как отобразить все категории, в которых находится сообщение Отображать сообщения иерархического пользовательского типа сообщений, исключая родительские сообщения Не удается загрузить SVG-файлы после обновления WordPress 4.7.1 Создание настраиваемого типа публикации галереи? Помощь со страницей nav? Как использовать подстановочные знаки в $ wpdb-запросах с помощью $ wpdb-> get_results & $ wpdb-> prepare? Доступ к переменной $ post из шаблона Получать сообщения об ошибках, когда $ wpdb-insert () возвращает false?

Получать сообщения из дочерних категорий с идентификатором родительской категории

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

Надеюсь, это фрагмент, который нужно изменить, но я не уверен.

Было бы хорошо, если бы кто-нибудь мог мне помочь.

<ul> <?php query_posts(array( 'post_type' => 'post', 'category__in' => $text, 'orderby' => 'meta_value_num', 'meta_key' => 'rankk', 'order' => 'DESC', 'posts_per_page' => 100 )); ?> 

Как я уже говорил в своих комментариях к вашему вопросу

Crappy написанные плагины всегда приводят к некоторой катастрофе в какое-то время. На мой взгляд, удалите этот плагин и напишите свой собственный код или найдите правильно написанный плагин. Нет смысла менять поврежденную шину, в то время как весь автомобиль является полным списанием 🙂

Чтобы начать, никогда не используйте query_posts

Примечание. Эта функция не предназначена для использования плагинами или темами. Как поясняется ниже, есть более эффективные, более эффективные варианты для изменения основного запроса. query_posts () является слишком упрощенным и проблематичным способом изменения основного запроса страницы путем замены его новым экземпляром запроса. Он неэффективен (повторно запускает SQL-запросы), и в некоторых случаях он будет неудачным (особенно часто при работе с разбивкой по страницам).

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

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

То, что вы хотите выполнить, не соответствует текущим параметрам категории. Лучше всего здесь использовать tax_query с WP_Query . С tax_query , по умолчанию, условия для детей включаются в установленный срок, и это то, что вы ищете

Вы можете попробовать следующее ( ОБРАТИТЕ ВНИМАНИЕ: для этого требуется PHP 5.4+ )

 $args = [ 'post_type' => 'post', 'orderby' => 'meta_value_num', 'meta_key' => 'rankk', 'order' => 'DESC', 'posts_per_page' => 100, 'tax_query' => [ [ 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => 'YOUR PARENT CATEGORY ID', ], ], ]; $q = new WP_Query( $args ); if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); the_title(); } wp_reset_postdata(); } 

Для версий PHP до 5.4 попробуйте это

 $args = array( 'post_type' => 'post', 'orderby' => 'meta_value_num', 'meta_key' => 'rankk', 'order' => 'DESC', 'posts_per_page' => 100, 'tax_query' => array( array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => 'YOUR PARENT CATEGORY ID', ), ), ); $q = new WP_Query( $args ); if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); the_title(); } wp_reset_postdata(); } 

вы можете использовать этот способ:

  <?php $category_id = get_cat_ID('Category Name'); <!-- Start the Loop. --> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <!-- Test if the current post is in category "Category Name". --> <!-- If it is, the div box is given the CSS class "post-cat-special". --> <!-- Otherwise, the div box is given the CSS class "post". --> <?php if ( in_category($category_id) ) { ?> <div class="post-cat-special"> <?php } else { ?> <div class="post"> <?php } ?> </div> <!-- Stop The Loop (but note the "else:" - see next line). --> <?php endwhile; else: ?> <!-- The very first "if" tested to see if there were any Posts to --> <!-- display. This "else" part tells what do if there weren't any. --> <p>Sorry, no posts matched your criteria.</p> <!-- REALLY stop The Loop. --> <?php endif; ?> 

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