Intereting Posts
Фильтровать сообщения в расширенном настраиваемом поле В чем разница между wp_insert_user () и wp_create_user () Условный wp_enqueue_script на странице PHP echo внутри javascript Как я могу исключить категорию из основного цикла с именем категории, а не идентификатором? Создание фиксированных размеров изображений для разных страниц, исключение размеров при загрузке Простой навигационный Walker – класс Wrapper вокруг первого подменю Пользовательский RSS-канал не работает должным образом Удаление основной ссылки на Jetpack из меню WP Query для установки миниатюры для существующих старых сообщений Создайте страницу администратора в WordPress без меню администратора («боковые панели WordPress») Flowplayer – Предупреждение: деление на ноль Категория nicename внутри цикла в wordpress Как закодировать отсортированный список элементов, которые затем могут сохранять и отображать в новом порядке? Кэширование плагинов + mod_pagespeed = overkill?

Пользовательский запрос num_rows возвращает неправильную сумму

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

Вместо 11, я получаю 14. Кто-нибудь знает, почему?

<?php $pageposts = $wpdb->get_results($wpdb->prepare(" SELECT * FROM $wpdb->posts LEFT JOIN userContests ON ($wpdb->posts.ID = userContests.contestID) LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' AND $wpdb->posts.post_date < NOW() AND $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id IN(3) ORDER BY $wpdb->posts.post_date DESC "), OBJECT); /* $rows = $wpdb->num_rows; <------ Wrongly returns 14 */ /* $rows = $wpdb->get_var($wpdb->prepare(" <--------- Correctly returns 11 SELECT COUNT(*) FROM $wpdb->posts LEFT JOIN userContests ON ($wpdb->posts.ID = userContests.contestID) LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' AND $wpdb->posts.post_date < NOW() AND $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id IN(3) ORDER BY $wpdb->posts.post_date DESC")); */ echo "Number of rows = " .$rows; ?> 

Моя работа кажется пустой тратой ресурсов. Есть ли что-то более эффективное?

Solutions Collecting From Web of "Пользовательский запрос num_rows возвращает неправильную сумму"

Если вы хотите, чтобы общее количество всех опубликованных сообщений в определенной категории вы могли попробовать.

 $all_posts = new WP_Query( array( 'posts_per_page' => -1, 'post_status' => 'publish', 'cat' => 3 ) ); echo $all_posts->post_count; 

или

 $all_posts = new WP_Query( array( 'posts_per_page' => -1, 'post_status' => 'publish', 'category_name' => 'uncategorized' ) ); echo $all_posts->post_count; 

Просто не забудьте заменить «category_name» или «cat» на нужную категорию.