Intereting Posts
Почему я не могу добавить этот фид в RSS-виджет? Показать страницу ошибки 404, если значение переменной публичного запроса не существует? Случайно удаленный php-код на веб-сайте WordPress Пользовательские шаблоны vs page-slug Параметр «Глубина как параметр» для «get_posts» Сценарии плагинов без загрузки на странице параметров Пользовательская таксономическая разбивка на страницы Код плагина ТОЛЬКО на странице редактирования сообщений Пользовательская роль пользователя не отображается в admin Сообщения не проходят правильно Как скрыть редактор Visual и Html полностью? Отображать настраиваемое поле с первой страницы на другой странице Показывать пользовательскую таксономию не в подменю Как удалить приоритет фильтра плагина на определенные циклы (пользовательские запросы)? Создание сайта каталога ссылок в WordPress с интеграцией API Facebook?

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; } } 

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

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