Теорія WordPress – Різниця між циклами query_posts, get_posts і WP_Query
У движку Вордпрес є кілька корисних і, головне, вбудованих в движок, циклів-запитів, які оперують з даними із бази даних. Йдеться про функції, які роблять запити до бази даних і повертають якийсь масив контенту. І за допомогою циклу дозволяють ефективно обробляти цей масив. Ці функції також дозволяють «кастомізувати» (задавати параметри) запит до бази даних і робити вибірку тільки потрібного контенту.
Основні функції для цього: 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>
Останні пости
Які товари найбільш маржинальні
Високомаржинальні товари – це та категорія, яка забезпечує підприємству найвищий рівень прибутку через значну різницю… Читати далі
Як працює рішення SD-WAN: Основи технології та сфери застосування
У сучасному світі, де бізнеси намагаються вдосконалити свої мережі та забезпечити безперервний доступ до додатків… Читати далі
Які строки варто прописати у договорі про розробку програмного забезпечення, щоб зробити процес роботи комфортним та передбачуваним?
Чітке визначення термінів проекту формує очікування, зменшує ризик порушення дедлайнів та посилює продуктивність співпраці між… Читати далі
Комп’ютер: недорогий і функціональний водночас
Важко уявити собі роботу, розваги, спілкування та дозвілля без комп'ютера. Він допомагає у різних сферах… Читати далі
Можливості сучасної апаратної косметології
Сучасні жінки та чоловіки схильні сильно дбати про свій зовнішній вигляд. Виглядаючи доглянуто, молодо та… Читати далі
Чи є у 40ка дюймових телевізорах переваги?
Коли люди збираються купити плазму, вони завжди шукають інформацію в Інтернеті і це добре. Тим… Читати далі