Intereting Posts
Сценарий Timthumb скомпрометирован – Какие меры предосторожности? Крючок на генераторе WordPress не показывает продукты, когда значение post_parent не равно 0 Как вернуть команду в WP-CLI из оболочки wp? Передавать параметры для действия через действие Проблемы с wp_enqueue_media () и upload_mimes Как превратить все вставленные изображения в сообщение в ссылки на изображения? Отображение данных в Word Нажмите на страницы сайта и страницы из таблицы mysql Будет ли плагин способен знать is_user_logged_in? Отправляет ли Feedburner уведомления о страницах WordPress? Как я могу программно создавать «дочерние» страницы при активации темы? Динамически назначать одинаковый шаблон страницы дочерней странице как родительской Удаление высоты и ширины изображений с надписью Будущий идентификатор сообщения не отображается Как масштабировать миниатюры сообщений / изображение?

Как оптимизировать мой запрос, отфильтровывая нежелательные данные?

Я использую get_posts ($arg); для запроса таблицы сообщений. Обычно мне нужны только три поля: post_title, ID и post_excerpt. Но возвращенные данные намного больше, включая post_content, который обычно огромен.

Я знаю, что могу использовать 'fields' => 'ids' чтобы получить только идентификатор. Но я хотел бы использовать 'fields' => 'post_title' или 'fields' => 'post_excerpt' .

Это возможно? Если это невозможно, какой другой метод я мог бы использовать?

Solutions Collecting From Web of "Как оптимизировать мой запрос, отфильтровывая нежелательные данные?"

get_posts() использует класс WP_Query для получения сообщений.

Обычно он возвращает массив объектов post. Параметр $fields для WP_Query принимает два допустимых аргумента: 'ids' приведет к возврату массива идентификаторов сообщений, а 'id=>parent' заставит его возвращать ассоциативный массив с свойствами post objects в виде пар key => value . Любое другое входное значение в качестве аргумента для $fields приведет к возврату объектов.

Таким образом, либо вы собираете только идентификаторы , либо получаете $post_content (и всю другую $post_content информацию) обратно, либо как элемент массива, либо свойство объекта.

Как правило, это не должно быть проблемой производительности. Это может быть заметно, если результирующий массив сам по себе очень большой, и вы хотите использовать его в дальнейших операциях.
Если ваша БД настолько велика, что требуются оптимизированные запросы, считайте, что она все равно должна пройти через всю таблицу wp_posts , независимо от того, выбран ли пост-контент или нет.
Итог: не имеет значения, что объекты имеют некоторые свойства, которые вам не нужны.