Загрузка из базы данных на страницу WordPress


Я пытаюсь загрузить контент (из своей базы данных) на страницу разных лет.

$yearQuery = mysql_query("SELECT DISTINCT YEAR(startDate) AS year FROM series ORDER BY startDate DESC");

if(mysql_num_rows($yearQuery) > 0) {
    while($year = mysql_fetch_assoc($yearQuery)) {
        echo "<li><a href='/teaching/podcasts?year=".$year['year']."'>".$year['year']."</a></li>";
    }
}
else {
    echo "<li>".mysql_error()."</li>";
}

Мне удалось заставить его успешно работать:

while($yearSeries = mysql_fetch_assoc($yearSeriesQ)) {
    echo "<div class='prevSermon'>";
        echo "<div class='prevImage'>";
            echo "<a href='/teaching/podcasts?id=".$yearSeries['id']."'><img height='90' width='90' alt='".$yearSeries['title']."' src='/admin/".$yearSeries['image']."'/></a>";
        echo "</div>";
        echo $yearSeries['title'];
    echo "</div>";
}

, Который показывает недели в предыдущей серии.

Что я делаю не так с годами, один из которых находится в архиве в нижней правой части?

Author: brasofilo, 2013-08-23

1 answers

В Wordpress вам не нужно выполнять необработанные SQL-запросы, как вы делаете здесь. Есть несколько способов получить сообщения, которые гораздо более безопасны. Вы должны попробовать использовать get_posts или WP_Query и передайте именно те аргументы, которые вам нужны для получения ваших сообщений. Это также вернет записи в виде объекта, который вы можете запустить setup_postdata включите и используйте волшебные функции Wordpress, такие как the_title() и the_content().

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

 1
Author: Matthew R., 2013-08-23 14:44:58