Вы делаете это слишком тяжело для себя, как я слишком хорошо знаю. Когда я начал работать с WordPress, я пришел к нему как опытный разработчик SQL, поэтому я хотел все кодировать на SQL. Оказывается, однако, что вам почти никогда не нужно использовать SQL с WordPress, потому что у него есть собственный API со встроенным URL-подобным языком запросов в комплекте с системой кэширования (система кэширования означает, что вам не нужно оптимизировать почти так же, как вы в противном случае может похудеть.)
Вот отдельный файл, который вы можете поместить в корень вашего сайта (назовите его test.php
, может быть?), Чтобы вы могли проверить это, поиграть с опциями и убедиться, что он работает:
<?php
include "wp-load.php";
$year = 2010;
$query = new WP_Query("post_type=any&posts_per_page=-1&year={$year}");
echo "<h1>Year: {$year}</h1>";
echo '<ul>';
foreach($query->posts as $post) {
echo "<li>{$post->post_title} [post_type={$post->post_type}]</li>";
}
echo '</ul>';
Язык запросов, который я упомянул выше, выглядит так:
post_type = любое & posts_per_page = -1 и год = 2010
Вы также можете запросить в виде массива, например (это действительно зависит только от вашего варианта использования и / или ваших предпочтений):
$query = new WP_Query(array(
'post_type' => 'any',
'posts_per_page' => -1,
'year' => $year,
));
Для WP_Query()
параметров запроса намного больше, чем три, которые я использовал выше. Вы можете найти лучшую документацию для этих параметров здесь:
Обратите внимание, что WP_Query()
- это всего лишь один из способов запроса в WordPress. Также есть query_posts()
, get_posts()
, и вы можете взаимодействовать с запросом также во время перехватов .
Да, бывают случаи, когда вам нужно перейти на SQL, но лучше в WordPress, особенно для обратной совместимости, если вы избегаете SQL и по возможности используете API.
Надеюсь, это помогло.
-Mike
P.S. Хотите узнать больше информации по запросу WordPress? Позвольте мне предложить вам задать вопросы на Ответах WordPress , когда он откроется для полной общедоступной бета-версии через неделю (Ответы WordPress от StackExchange , те же люди, что и StackOverflow.) скорее всего, вы получите лучшие ответы для WordPress, чем здесь, потому что этот сайт будет заполнен экспертами WordPress, в отличие от универсалов (и в остальном чрезвычайно знающих людей) здесь.