Intereting Posts
Функция удаления плагинов не работает Алфавитно упорядоченная категория в WordPress Плагин WordPress не автоматическое обновление Предоставление пользователям возможности просматривать частные сообщения (в ожидании утверждения) Диспетчер событий: события Удаленные все еще находятся в БД, как опубликованные, но скрытые в admin Вопрос о многоуровневой функции WP Создание детской темы из Coeur WordPress удаляет строки mysql со строкой Установить настраиваемую панель инструментов для экземпляра ACF TinyMCE (через ajax?) Пользовательский тег привязки Walker, не наследующий атрибуты Детский сайт не отображается в меню «Сеть» API-интерфейс WordPress REST – разрешения на возврат Ajax не публикует данные формы для запроса в функции PHP Элементы меню тегов на основе их категорий Разная роль для бесплатных и профессиональных пользователей в WordPress без использования bbpress

Пытается получить столбцы ниже категории с несколькими циклами в таможенном налоге

надеясь, что кто-то здесь может помочь noob.

В идеале я хотел бы получить заметку из категории «Featured Club», чтобы отобразить выше трех сообщений из одного и того же настраиваемого типа сообщений. У меня есть следующие рабочие, но для одного я использую две петли, где я уверен, что один будет работать, а два – результаты в полноразмерной записи, отображаемые в столбце, и мне нужны они в строке.

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

Посмотрите вперед, чтобы получить некоторую помощь.

Вот код:

<h2 class="home-title">Jazz Clubs</h2> <?php $args = array ( 'post_type' => 'jazz clubs', 'meta_query' => array( array( 'key' => '_jazz_club_feature_club', ), ), ); // The Query $jazzclubs = new WP_Query( $args ); // The Loop if ( $jazzclubs->have_posts() ) { while ( $jazzclubs->have_posts() ) { $jazzclubs->the_post(); ?> <h3><?php the_title() ?></h3> <?php the_post_thumbnail() ?> <div class='post-content'><?php the_excerpt() ?></div> <?php } } else { // no posts found } wp_reset_postdata(); ?> </div> </div> <div class="row"> <div class="small-12 large-4 columns" id="home-club"> <?php // WP_Query arguments $args = array ( 'post_type' => 'jazz clubs', 'orderby' => 'date', ); // The Query $jazzclubs = new WP_Query( $args ); // The Loop if ( $jazzclubs->have_posts() ) { while ( $jazzclubs->have_posts() ) { $jazzclubs->the_post(); ?> <div id="homeclub"> <div class="homethumb"> <?php the_post_thumbnail() ?> <h5 id="city"class="h5"><span><?php $terms = get_the_terms( $post->ID , 'city' ); if ( $terms != null ){ foreach( $terms as $term ) { print $term->name ; unset($term); } } ?></span></h5> </div> <h4 id="home"class="h4"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4> <h6 id="home"class="h6"><?php the_date('F j Y'); ?></h6> <div class='post-content'><?php the_excerpt() ?></div> </div> <?php } } else { // no posts found } // Restore original Post Data wp_reset_postdata(); ?> </div> 

… для одного я использую две петли, где я уверен, что один будет работать …

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

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

Это можно исправить с помощью CSS. Поиск в Google для горизонтальных списков для CSS-примеров делает это со списками ( <ul> и <ol> ). Довольно легко адаптировать аналогичный стиль к div.


В коде есть еще кое-что.

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

 $terms = get_the_terms( $post->ID , 'city' ); if ( $terms != null ) { foreach( $terms as $term ) { print $term->name ; unset($term); } } с $terms = get_the_terms( $post->ID , 'city' ); if ( $terms != null ) { foreach( $terms as $term ) { print $term->name ; unset($term); } } 

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

 function wpse_117541_the_post_city() { global $post; $terms = get_the_terms( $post->ID , 'city' ); if ( $terms && ! is_wp_error( $terms ) ) echo $terms[0]->name; echo ''; } 

Примечание. Я не полностью тестировал эту функцию.

В коде вы можете использовать его так:

  <h5 id="city" class="h5"><span><?php wpse_117541_the_post_city(); ?></span></h5> 

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

В вашем коде этот HTML-код появляется в цикле строк:

 <div id="homeclub"> <div class="homethumb"> <?php the_post_thumbnail() ?> <h5 id="city" class="h5"><span><?php wpse_117541_the_post_city(); ?></span></h5> </div> <h4 id="home" class="h4"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4> <h6 id="home" class="h6"><?php the_date( 'F j Y' ); ?></h6> <div class='post-content'><?php the_excerpt() ?></div> </div> 

Если есть 1 строка из 4 столбцов, будет 4 homeclub и 8 home id . Использование имени класса, которое совпадает с именем элемента, не дает вам большой пользы. В CSS элементы h4 можно стилизовать, используя селектор h4 . Добавление class HTML с тем же именем позволяет использовать .h4 в качестве селектора.

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

 <div class="home-club"> <div class="thumb"> <?php the_post_thumbnail() ?> <h5 class="city"><span><?php wpse_117541_the_post_city(); ?></span></h5> </div> <h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4> <h6><?php the_date( 'F j Y' ); ?></h6> <div class='post-content'><?php the_excerpt() ?></div> </div> 

В таблице стилей используйте эти селектора CSS для стилизации каждой части:

 .home-club {} .home-club thumb {} .home-club h5 {} or .home-club .city {} .home-club h4 {} .home-club h6 {} .home-club post-content {} 

{} будет содержать стили для этой части HTML, если таковые имеются. Я использовал home-club потому что предпочитаю разделять слова в именах классов с тире.


В-третьих, вам нужно будет только wp_reset_postdata() после завершения всех ваших пользовательских циклов. Это означает сброс данных сообщения (которые были сбиты с каждым вызовом the_post() ) для запроса, который WordPress использовал для the_post() к этой странице.

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