Intereting Posts
Как создать динамическую панель поиска WordPress из Predesigned Static Html Search-Bar? как использовать tax_query для применения обоих терминов или один, если один пуст Есть ли встроенная функция для проверки совместимости URL-адреса? Как сгенерировать список дочерних страниц и использовать некоторые из своих настраиваемых полей? Замена термина-заполнителя значением переменной сеанса в таксономическом фильтре выдать при переводе wordpress их bp_has_members с пользовательскими полями Как отображать данные из настраиваемых полей в моем специальном коротком коде? Планировщик бронирования отелей вы бы порекомендовали Запросить сообщения между двумя датами (пользовательские мета-ключи) CMB2 Куда поместить мой код: плагин или functions.php? Как включить комментарий и количество сообщений пользователя в этом пользовательском запросе tax_query (если условия пусты) Запросить (встроенные) категории и расширенные пользовательские поля? как я могу добавлять данные к сообщениям, которые можно получить с помощью WP Rest API

Заказать сообщения по тегам?

Я пытаюсь заказать сообщения по количеству тегов. Я хочу заказывать сообщения без каких-либо тегов, а сообщения с наибольшим количеством последних.

Я пробовал и получал сообщения без тегов.

$tags = get_tags(); $tag_ids = wp_list_pluck( $tags, 'term_id' ); $args1 = array ( 'orderby' => 'DEC', 'post_type' => 'post', 'pagination' => true, 'posts_per_page' => '1', 'tag__not_in' => $tag_ids, 'meta_key' => '_thumbnail_id', ); 

Как заказывать сообщения на основе подсчета тегов?

Поскольку @Robert hue говорит, что вы не можете сделать это напрямую, вам нужен фильтр и CASE в порядке, например

 $args1 = array ( 'orderby' => 'tag_count', 'order' => 'DESC', 'post_type' => 'post', 'pagination' => true, 'posts_per_page' => '1', // 1 post per page?! 'meta_key' => '_thumbnail_id', 'suppress_filters' => false, ); function wpse173949_posts_clauses( $pieces, $query ) { if ( $query->get( 'orderby' ) != 'tag_count' ) return $pieces; global $wpdb; if ( ! ( $order = $query->get( 'order' ) ) ) $order = 'DESC'; $pieces[ 'fields' ] .= $wpdb->prepare( ', (SELECT COUNT(tr.object_id) FROM ' . $wpdb->term_relationships . ' tr' . ' JOIN ' . $wpdb->term_taxonomy . ' AS tt ON tt.term_taxonomy_id = tr.term_taxonomy_id' . ' WHERE tr.object_id = ' . $wpdb->posts . '.ID AND tt.taxonomy = %s) AS tag_count' , 'post_tag' ); // Treat zero tagged posts as max int (~0). $pieces[ 'orderby' ] = 'CASE WHEN tag_count THEN tag_count ELSE ~0 END ' . $order; return $pieces; } add_filter( 'posts_clauses', 'wpse173949_posts_clauses', 10, 2 ); $query = new WP_Query( $args1 ); remove_filter( 'posts_clauses', 'wpse173949_posts_clauses', 10 );