PHP
#php#wordpress#wp-query#named-arguments#php-8

WordPress: обёртка над WP_Query с именованными аргументами (PHP 8.0)

Функция-обёртка над WP_Query с именованными аргументами для читаемого вызова и устранения путаницы порядка параметров.

Как использовать

  1. Скопируйте нужный фрагмент кода.
  2. Вставьте в свой проект и при необходимости измените под задачу.
  3. Проверьте зависимости и окружение (версии, переменные).

Обёртка над 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) корректен.