Intereting Posts
Установка WordPress на домен и субдомен. Логин снова после обновления профиля Пользовательский URL-адрес WordPress Таблица WPDB не существует Приведение бэкэнд-формы на передний план Остановить принуждение определенных путей до конца с помощью косой черты Случайная запись, страница внутри проблемы с конвейером Неустранимая ошибка: допустимый размер памяти 146800640 байт исчерпан (пытался выделить 57 байт) в public_html / wp-includes / rewrite.php в строке 1561 Получить название категории за пределами цикла в category.php Используйте плагин или пользовательский тип сообщения для функциональности игрового счета Разный баннер на главной странице Сохранение пользовательской метаинформации при загрузке мультимедиа Как удалить трейлинг теги </ li> из wp_nav_menu walker Изменить тип списка с номеров на верхний регистр в одном / нескольких вариантах – WP-Pro Quiz Навигация по страницам за пределами контура

WP_Query для получения сообщений в определенной категории и почтовом формате

Я пытаюсь использовать WP_Query или get_posts чтобы вытащить последнее сообщение, которое как в определенной категории, так и в определенном почтовом формате.

 <?php $singargs = array( 'numberposts' => 1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array ( 'gift-of-the-day' ), ), array( 'taxonomy', => 'post_format', 'field' => 'slug', 'terms' => array( 'aside'), ) ) ); $singPost = new WP_Query( $singargs ); foreach ( $singPost as $post ) : setup_postdata($post); ?> <aside> <h2><?php the_title(); ?></h2> </aside> <?php endforeach; wp_reset_postdata(); ?> в <?php $singargs = array( 'numberposts' => 1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array ( 'gift-of-the-day' ), ), array( 'taxonomy', => 'post_format', 'field' => 'slug', 'terms' => array( 'aside'), ) ) ); $singPost = new WP_Query( $singargs ); foreach ( $singPost as $post ) : setup_postdata($post); ?> <aside> <h2><?php the_title(); ?></h2> </aside> <?php endforeach; wp_reset_postdata(); ?> в <?php $singargs = array( 'numberposts' => 1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array ( 'gift-of-the-day' ), ), array( 'taxonomy', => 'post_format', 'field' => 'slug', 'terms' => array( 'aside'), ) ) ); $singPost = new WP_Query( $singargs ); foreach ( $singPost as $post ) : setup_postdata($post); ?> <aside> <h2><?php the_title(); ?></h2> </aside> <?php endforeach; wp_reset_postdata(); ?> 

Что я здесь делаю неправильно?

Solutions Collecting From Web of "WP_Query для получения сообщений в определенной категории и почтовом формате"

Две проблемы, которые я вижу: aside в aside post-format-aside и, поскольку вы используете переменный цикл foreach, new WP_Query( $singargs ); get_posts( $singargs ); поэтому ваш код будет выглядеть так:

 <?php $singargs = array( 'numberposts' => 1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array ( 'gift-of-the-day' ), ), array( 'taxonomy', => 'post_format', 'field' => 'slug', 'terms' => array( 'post-format-aside'), ) ) ); $singPost = get_posts( $singargs ); foreach ( $singPost as $post ) : setup_postdata($post); ?> <aside> <h2><?php the_title(); ?></h2> </aside> <?php endforeach; wp_reset_postdata(); ?> в <?php $singargs = array( 'numberposts' => 1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array ( 'gift-of-the-day' ), ), array( 'taxonomy', => 'post_format', 'field' => 'slug', 'terms' => array( 'post-format-aside'), ) ) ); $singPost = get_posts( $singargs ); foreach ( $singPost as $post ) : setup_postdata($post); ?> <aside> <h2><?php the_title(); ?></h2> </aside> <?php endforeach; wp_reset_postdata(); ?> в <?php $singargs = array( 'numberposts' => 1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array ( 'gift-of-the-day' ), ), array( 'taxonomy', => 'post_format', 'field' => 'slug', 'terms' => array( 'post-format-aside'), ) ) ); $singPost = get_posts( $singargs ); foreach ( $singPost as $post ) : setup_postdata($post); ?> <aside> <h2><?php the_title(); ?></h2> </aside> <?php endforeach; wp_reset_postdata(); ?> 

Почему бы просто не использовать что-то вроде:

 $args = array('category' => 1 ); $all_posts = get_posts( $args); foreach ($all_posts as $this_post) { if ( has_post_format( 'aside' ) ) { echo '<aside><h2>' . $this_post->title . '</h2></aside>'; break; } } в $args = array('category' => 1 ); $all_posts = get_posts( $args); foreach ($all_posts as $this_post) { if ( has_post_format( 'aside' ) ) { echo '<aside><h2>' . $this_post->title . '</h2></aside>'; break; } } 

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

Извините, если я ошибаюсь!