get_posts
Функция get_posts()
используется для получения списка постов из базы данных. Она работает аналогично WP_Query
, но возвращает простой массив объектов записей без сложных возможностей пагинации.
Синтаксис
get_posts( array|string $args = array() );
Функция принимает массив аргументов $args
, аналогичный WP_Query
, и возвращает массив объектов WP_Post
.
Аргументы
Основные параметры, которые можно передавать в get_posts()
:
Параметр | Тип | Описание |
---|---|---|
numberposts |
int | Количество записей (по умолчанию 5). Используйте -1 , чтобы получить все записи. |
post_type |
string | Тип записей (post , page , custom_post_type ). По умолчанию post . |
post_status |
string | Статус записей (publish , draft , private и т. д.). По умолчанию publish . |
orderby |
string | Поле для сортировки (date , title , rand , meta_value , и т. д.). |
order |
string | Порядок (ASC или DESC ). По умолчанию DESC . |
category |
int | ID категории (используется для старой таксономии). |
category_name |
string | Слаг категории (news , blog ). |
meta_key |
string | Ключ кастомного поля (используется для сортировки или фильтрации). |
meta_value |
string | Значение кастомного поля. |
include |
array | ID постов, которые нужно включить. |
exclude |
array | ID постов, которые нужно исключить. |
suppress_filters |
bool | Отключение фильтров (по умолчанию true ). |
Полный список параметров можно найти в документации WordPress.
Примеры использования
1. Получение последних 10 постов
2. Получение всех постов определённого типа (например, product
)
Чем get_posts()
отличается от WP_Query
?
Функция | Возвращает | Фильтры и хуки | Поддержка пагинации |
---|---|---|---|
get_posts() |
Массив объектов WP_Post |
Отключены (suppress_filters => true ) |
Нет |
WP_Query |
Полноценный объект с методами (have_posts() , the_post() ) |
Полностью поддерживаются | Да |
Когда использовать get_posts()
?
- Если вам нужно просто получить массив постов без сложной логики.
- Когда не нужна пагинация.
- Если не требуются дополнительные фильтры.
Когда использовать WP_Query
?
- Если нужна пагинация (
$wp_query->max_num_pages
). - Если необходимо использовать
have_posts()
,the_post()
. - Если важно учитывать все стандартные фильтры и хуки.
Функция get_posts()
— это удобный инструмент для быстрого получения постов в WordPress. Она проще, чем WP_Query
, и идеально подходит для небольших выборок записей. Если же вам нужна более гибкая система с поддержкой пагинации, лучше использовать WP_Query
. Не забываем использовать в конце функцию wp_reset_postdata, чтобы сбросить данные постов после завершения цикла.
Функции WordPress
- unregister_post_type
- post_type_supports
- post_type_exists
- get_post_types
- get_post_type_object
- get_post_format
- get_next_posts_page_link
- is_attachment
- get_default_post_to_edit
- wp_trash_post
- wp_publish_post
- update_post_meta
- add_post_meta
- register_post_type
- get_post_status
- the_post
- is_main_query
- get_query_var
- wp_html_excerpt
- wp_count_posts
- in_the_loop
- WP_Meta_Query
- wp_reset_query
- query_posts
- wp_insert_post
- wp_update_post
- wp_delete_post
- wp_get_recent_posts
- is_year
- is_time
- get_page_by_title
- get_children
- get_boundary_post
- get_pages
- get_the_date
- the_date
- get_post
- get_post_meta
- get_the_author_meta
- post_content
- post_author
- get_post_field
- get_the_content
- setup_postdata
- the_content
- have_posts
- the_title
- wp_reset_postdata
- WP_Query