2010-11-12 2 views
2

Сценарий: Я создаю сборные панели на боковой панели и отображаю ВСЕ категории как DIV и все сообщения в этих категориях DIV. Достаточно просто. Я получил все категории по get_categories('orderby=name&order=ASC') и теперь перебираю каждую категорию, чтобы получить ВСЕ записи в каждой категории.Wordpress get-posts без содержимого (для уменьшения накладных расходов)

Задача: Код get_posts('nopaging=1&category='.$category->cat_ID) дает мне все сообщения, но с content и прочим. Все, я хочу, это постоянная ссылка на сообщение. Вот и все. Я считаю, что использование get_posts, таким образом, создаст большие накладные расходы, так как вокруг более чем 1000 сообщений в более чем 20 категориях.

Функция или кусок кода, который может только получить мне все сообщения в категории с permalink и без других вещей, особенно с содержанием, поскольку это самые большие накладные расходы.

ответ

4

Посмотрите в использовании пользовательского запроса, чтобы извлечь именно то, что вы хотите: http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query

Вы можете также использовать wp_reset_query() после того, как вы закончили с пользовательским вызовом, потому что выбор запроса может быть забавным Попалась в WordPress, когда вещи начинают перекрывая друг друг: http://codex.wordpress.org/Function_Reference/wp_reset_query

Отредактирован после вашего комментария: Вы должны были бы использовать соединение между wp_term_relationships и wp_posts, возможно, даже 3-полосным присоединиться wp_term_taxonomy брошено для хорошей меры.

Чтобы быть абсолютно честным, я бы даже не потрудился - это большая работа, которая не принесет большой пользы. 1000 записей на самом деле не так много, и Wordpress уже использует индексы на wp_posts для оптимизации своих «запросов». Вероятно, вы получите гораздо лучшие результаты, используя плагин супер-кэша wp для создания статических HTML-файлов для посетителей (http://wordpress.org/extend/plugins/wp-super-cache/), чем путем дублирования основных запросов WP с несколькими столбцами, удаленными из выбранного.

+0

Спасибо. Не могли бы вы рассказать мне, какой вопрос мне писать? 'SELECT ID, post_title FROM posts WHERE .......'. Что должно быть предложением where для категории, то есть 'where category_id = 1'. Что должно быть там? – WhatIsOpenID

+1

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

Смежные вопросы