В движке Вордпресс есть несколько полезных и, главное, встроенных в движок, циклов-запросов, которые оперируют с данными из базы данных. Речь идет о функциях, которые делают запросы к базе данных и возвращают некий массив контента. И с помощью цикла позволяют эффективно обрабатывать этот массив. Эти функции также позволяют «кастомизировать» (задавать параметры) запрос к базе данных и делать выборку только нужного контента.
Основные функции для этого: query_posts()
, get_posts()
и WP_Query()
Какой контент можно ими обрабатывать: выборка постов (записей), отдельной записи, архив записей (по автору, по дате), выборка записей по категории, выборка записей по тегам (меткам), — с указанием дополнительных параметров.
После того, как функция сделала выборку и вернула массив, контент с помощью цикла можно вывести на экран в удобочитаемом виде. Например, «вытянуть» из массива и «передать» html-тегам название поста, дату публикации, категорию поста и т.п.
query_posts()
– стандартный цикл. Это не только наиболее упрощенный способ изменения основного запроса, но и также наиболее проблематичный способ, поскольку заменяет запрос его новым экземпляром (и переписывает глобальные переменные $wp_query
, $post
, $posts
). Можно использовать 1 раз на странице (шаблоне). Эта функция не рекомендуется ввиду того, что делает дополнительные SQL-запросы к базе данных, может вызывать баги, особенно при построении страниц с пагинацией (разбивке по страницам). Вместо этой функции рекомендуется использовать другие методы, рассмотренные ниже.get_posts()
– дополнительный цикл. Эта функция очень похожа в использовании на предыдущую, может принимать те же параметры (за небольшими исключениями), но ее главное отличие в том, что она возвращает массив публикаций (записей), не изменяя при этом глобальные переменные ($wp_query
, $post
, $posts
). Использование этой функции безопасно практически в любом месте (читай – шаблоне). Можно использовать много раз на странице (в одном шаблоне). Наиболее популярный метод.WP_Query()
– дополнительный цикл. Класс WP_Query
наиболее сложный (предыдущие две функции работают на его основе), позволяет задавать множество параметров выборки, а главное его отличие – он позволяет создавать новый собственный объект и работать в дальнейшем с ним. Эта функция особенно полезна, когда нужно выводить посты, которые не связаны с текущей страницей или при работе с множественными циклами. Использование этой функции также безопасно практически в любом месте (читай – шаблоне). Рекомендуется использование только для особых и/или сложных случаев выборки данных.
Визуально работу функций запросов в WordPress можно изобразить с помощью этой инфографики:
Пример использования функции get_posts()
для выборки из базы данных 5 постов в случайном порядке, и вывода ссылок на эти посты в маркированном списке
<ul> <?php global $post; $args = array( 'posts_per_page' => 5, 'orderby' => 'rand' ); /* постов на страницу - 5, сортировка - в случайном порядке */ $rand_posts = get_posts( $args ); foreach ( $rand_posts as $post ) : setup_postdata( $post ); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; wp_reset_postdata(); ?> </ul>
Грехи других судить вы так усердно рветесь, начните со своих и до чужих не доберетесь… Read More
Люди, между которыми есть любовь и взаимопонимание, скрепляют отношения и зарождают новый союз, а дату… Read More
Для качественного SEO (поисковой оптимизации, раскрутки сайта) одним из важных показателей является Авторитет домена (Domain… Read More
Выяснение того, как вывести свои деньги с PayPal, является одним из первых вопросов, которыми озадачивается… Read More
Юбка – мощный элемент женского гардероба, благодаря которому любой наряд будет выглядеть потрясающе стильно и… Read More
Поисковые системы (например, Google) проверяют технические характеристики вашего сайта, такие как скорость загрузки, удобство навигации,… Read More