Загрузка из базы данных на страницу 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>";
}
, Который показывает недели в предыдущей серии.
Что я делаю не так с годами, один из которых находится в архиве в нижней правой части?
1 answers
В Wordpress вам не нужно выполнять необработанные SQL-запросы, как вы делаете здесь. Есть несколько способов получить сообщения, которые гораздо более безопасны. Вы должны попробовать использовать get_posts
или WP_Query
и передайте именно те аргументы, которые вам нужны для получения ваших сообщений. Это также вернет записи в виде объекта, который вы можете запустить setup_postdata
включите и используйте волшебные функции Wordpress, такие как the_title()
и the_content()
.
Используя этот метод, вы должны быть в состоянии нацелить точные сообщения, которые вам нужны. Просто сравните их с аргументами в Кодексе, которые относятся к вашему конкретному случаю. Обратите внимание, что вы также можете выполнять мета-запросы и объединения точно так же, как и в необработанном SQL.