Intereting Posts
Wp избранные сообщения по определенной категории? Пользовательская функция для регистра пользователя в wp? Мои сообщения показывают 2 формы комментариев Как получить перерывы строк для перевода в абзацы? Укажите ABSPATH в URL-адресе jQuery. Возвращает только один формат сообщения в index.php WordPress multisite: ошибка wp-admin 403 Автоматическая таксономия на основе пользовательского мета поля Как добавить пользовательскую кнопку на панель инструментов tinyMCE? Необходимо превратить этот php в короткий код WP Удалить тег короткой ссылки с определенной страницы Войдите в систему после «Подробнее», затем вернитесь к статье Как проверить, включен ли searchform.php в качестве виджета? Пользовательское поле получает значение другой страницы / сообщения вместо текущего? Показывать только разбиение на страницы, когда количество сообщений превышает шоу

Почтовый архив для определенного формата сообщения

Я использую следующий код для пользовательского архива всех сообщений:

$taxonomy = 'category'; $param_type = 'category__in'; $term_args = array( 'orderby' => 'slug', 'order' => 'ASC' ); $terms = get_terms($taxonomy,$term_args); if ($terms) { foreach( $terms as $term ) { $args = array( "$param_type" => array($term->term_id), 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => -1, 'caller_get_posts'=> 1 ); $my_query = null; $my_query = new WP_Query($args); if( $my_query->have_posts() ) { ?> <h3 style="margin-bottom: 0px;"><?php echo $term->name;?></h3> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> <ul style="list-style-type: circle;"> <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li> </ul> <?php endwhile; } } } wp_reset_query(); // Restore global post data stomped by the_post(). 

Теперь это тянет все сообщения, но есть ли способ ограничить результаты только определенным почтовым форматом?

То же самое для этого:

 echo $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish'"); 

Форматы сообщений на самом деле являются терминами таксономии post_format . Я сделал сообщение о том, что такое таксономии и их иерархии, которые вы можете проверить здесь

Чтобы получить список всех терминов в таксономии post_format , просто используйте get_terms и var_dump() результат

 $terms = get_terms('post_format','hide_empty=0'); ?><pre><?php var_dump($terms); ?></pre><?php 

Это напечатает

 array(5) { [0]=> object(stdClass)#207 (9) { ["term_id"]=> string(3) "142" ["name"]=> string(5) "Aside" ["slug"]=> string(17) "post-format-aside" ["term_group"]=> string(1) "0" ["term_taxonomy_id"]=> string(3) "142" ["taxonomy"]=> string(11) "post_format" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(1) "0" } [1]=> object(stdClass)#310 (9) { ["term_id"]=> string(3) "129" ["name"]=> string(5) "Audio" ["slug"]=> string(17) "post-format-audio" ["term_group"]=> string(1) "0" ["term_taxonomy_id"]=> string(3) "129" ["taxonomy"]=> string(11) "post_format" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(1) "0" } [2]=> object(stdClass)#309 (9) { ["term_id"]=> string(3) "105" ["name"]=> string(7) "Gallery" ["slug"]=> string(19) "post-format-gallery" ["term_group"]=> string(1) "0" ["term_taxonomy_id"]=> string(3) "105" ["taxonomy"]=> string(11) "post_format" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(1) "0" } [3]=> object(stdClass)#308 (9) { ["term_id"]=> string(3) "128" ["name"]=> string(5) "Quote" ["slug"]=> string(17) "post-format-quote" ["term_group"]=> string(1) "0" ["term_taxonomy_id"]=> string(3) "128" ["taxonomy"]=> string(11) "post_format" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(1) "0" } [4]=> object(stdClass)#307 (9) { ["term_id"]=> string(3) "106" ["name"]=> string(5) "Video" ["slug"]=> string(17) "post-format-video" ["term_group"]=> string(1) "0" ["term_taxonomy_id"]=> string(3) "106" ["taxonomy"]=> string(11) "post_format" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(1) "0" } } 

Одна вещь, хотя я хочу подчеркнуть, standard – это не формат сообщения, который подведет. Любая должность без назначенного почтового формата должна быть назначена по умолчанию для почтового формата. Проблема в том, что если вам нужны только сообщения, у которых нет специального формата сообщения, вам нужно запустить tax_query и исключить все сообщения, у которых есть почтовый формат.

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

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

 $args = array( 'post_type' => 'post', 'tax_query' => array( array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => 'post-format-video', ), ), ); $query = new WP_Query( $args ); 

Если вам нужно получать сообщения без прикрепленного формата сообщения, вам нужно сделать что-то вроде

 $args = array( 'post_type' => 'post', 'tax_query' => array( array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => array('post-format-video',' post-format-quote', 'post-format-gallery', 'post-format-audio', 'post-format-aside' ), 'operator' => 'NOT IN', ), ), ); $query = new WP_Query( $args ); 

Добавьте аргумент таксономии, чтобы указать тип сообщения в WP_Query. Вот пример из кода:

 $args = array( 'post_type' => 'post', 'tax_query' => array( array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => array( 'post-format-quote' ), ), ), ); $query = new WP_Query( $args ); 

Вам нужно заменить post-format-quote тем, который вам нужен.