Intereting Posts
Отображение содержимого дочерних страниц определенного родителя на главной странице Добавьте InfoBox в окно загрузки мультимедиа Любые плагины, чтобы помочь с многоязычным контентом? Сортировка сообщений по категориям Использование AJAX в контактной форме WordPress способом Как устранить префикс permalink в WordPress Multisite Что такое код для загрузки ссылки на продукт в WooCommerce? Не удается перенаправить с плагина-зарегистрированной страницы администратора Первое сообщение каждой категории Показать Недавно добавленные пользовательские типы сообщений с пользовательским таксономии Shortcode Пользовательские типы сообщений и соответствующие им файлы тем Объединение нескольких объектов wp_query как сделать два пользовательских типа post post-base slug одинаковыми, тогда имя таксономии или мета-значение в URL-адресе «Вам нужно сделать этот файл доступным для записи, прежде чем вы сможете сохранить свои изменения», но файл доступен для записи Могу ли я установить и показать «важную» запись в своем блоге?

Можно ли считать совпадения без запроса?

Я пытаюсь подсчитать результаты для данного запроса, но мне действительно не нужны сообщения, поэтому я пытаюсь выяснить, есть ли способ подсчитать сообщения, не запрашивая их. Нечто похожее на https://codex.wordpress.org/Function_Reference/wp_count_posts

Я подсчитываю сообщения мета-ключом / значением, поэтому wp_count_posts() не будет работать.

Вот что я сейчас делаю:

 $query = new WP_Query(array( "post_type" => 'my-post-type', "posts_per_page" => 0, "meta_key" => "my_custom_key", "meta_value" => "some_value", )); echo $query->found_posts; 

Неполное решение состоит в том, чтобы просто минимизировать объем информации, передаваемой по запросу, и побочные эффекты. Это можно сделать, запросив только идентификаторы сообщений и не заполняя кеши.

Ваш запрос должен быть чем-то вроде

 $query = new WP_Query(array( ... 'fields' => 'ids', 'cache_results' => false, 'update_post_meta_cache' => false, 'update_post_term_cache' => false, )); 

Таким образом, вы все равно получаете слишком много информации – массив целых чисел, а не один, но поскольку БД приходится переходить по ним, в любом случае основные накладные расходы, вероятно, являются временем его передачи, и если вы не ожидаете, что 1000 сообщений, соответствующих вашим запрос, то он должен быть достаточно хорошим.

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

Вы устанавливаете значение posts_per_page 0. posts_per_page для всех сообщений, заданных -1 или другого положительного числа

 $query = new WP_Query( array( "post_type" => 'my-post-type', "posts_per_page" => -1, "meta_key" => "my_custom_key", "meta_value" => "some_value", ) ); echo $query->found_posts;