WordPress: обёртка над WP_Query с именованными аргументами (PHP 8.0)
Функция-обёртка над WP_Query с именованными аргументами для читаемого вызова и устранения путаницы порядка параметров.
Как использовать
- Скопируйте нужный фрагмент кода.
- Вставьте в свой проект и при необходимости измените под задачу.
- Проверьте зависимости и окружение (версии, переменные).
Обёртка над WP_Query, принимающая именованные аргументы (PHP 8.0+). Удобно вызывать без запоминания порядка параметров. Документация: WP_Query.
<?php
/**
* Построить WP_Query с именованными аргументами.
* Все параметры соответствуют ключам массива аргументов WP_Query.
*/
function build_wp_query(
int $limit = 10,
string $post_type = 'post',
int $paged = 1,
bool $no_found_rows = true,
): WP_Query {
return new WP_Query([
'post_type' => $post_type,
'posts_per_page' => $limit,
'paged' => $paged,
'no_found_rows' => $no_found_rows,
]);
}
Usage:
// Читаемый вызов: сразу видно, что 12 — это лимит, 2 — страница
$query = build_wp_query(limit: 12, post_type: 'product', paged: 2);
// Часть аргументов можно опустить (используются значения по умолчанию)
$latest = build_wp_query(limit: 5);
Notes:
⚠️ Именованные аргументы — фича PHP 8.0. Имена параметров функции совпадают с ключами массива аргументов WP_Query из официальной документации WordPress. Порядок вызова не важен: build_wp_query(paged: 2, limit: 12) корректен.