Функция wp_sprintf()
— это расширение стандартной функции PHP sprintf()
, дополненное поддержкой WordPress. Она позволяет форматировать строки с использованием различных аргументов, вставляя их в определенные позиции строки, согласно заданному шаблону (pattern
). Дополнительное преимущество wp_sprintf()
в WordPress — наличие специального формата %l
, который позволяет форматировать массивы в виде списка с разделением запятыми, где перед последним элементом используется союз «и».
wp_sprintf( string $pattern, mixed $args ): string
Параметры
$pattern
(строка) — Обязательный. Строка-шаблон, в которую будут вставлены аргументы.$args
(смешанный) — Обязательный. Аргументы для форматирования строки в соответствии с шаблоном.
Возвращаемое значение
Функция возвращает строку, созданную на основе переданного формата $pattern
и значений $args
.
Пример 1: Использование заменителя %l
для массивов
С помощью %l
можно удобно вставить массив в строку в виде списка, где элементы разделены запятыми, а перед последним элементом будет стоять союз «и». Этот подход идеально подходит для создания удобочитаемых списков.
$numbers = array(3, 7, 12, 25);
echo wp_sprintf('%s: %l', 'Номера', $numbers);
// Пример результата:
// Номера: 3, 7, 12 и 25
Пример 2: Форматирование строки с числами и строками
Функция wp_sprintf()
поддерживает те же спецификаторы, что и sprintf()
, такие как %d
для целых чисел и %s
для строк. В следующем примере мы вставляем число и строку в шаблон.
$pattern = '%d студент(ов) обучается на %s';
echo wp_sprintf($pattern, 20, 'курсе по веб-разработке');
// Пример результата:
// 20 студент(ов) обучается на курсе по веб-разработке
Пример 3: Изменение порядка аргументов
wp_sprintf()
поддерживает смену порядка аргументов с использованием формата %<позиция>$
. Это позволяет вставлять аргументы в любом порядке, независимо от их порядка в коде.
$pattern = 'На %2$s сидят %1$d обезьян';
echo wp_sprintf($pattern, 7, 'ветке');
// Пример результата:
// На ветке сидят 7 обезьян
Пример 4: Повторение аргументов в шаблоне
Функция позволяет повторно использовать аргументы, не передавая их заново. Это удобно, если значение требуется несколько раз в одной строке.
$pattern = 'В классе %1$d студентов. Все %1$d студентов учатся в одном классе.';
echo wp_sprintf($pattern, 25);
// Пример результата:
// В классе 25 студентов. Все 25 студентов учатся в одном классе.
Пример 5: Использование wp_sprintf()
для тегов HTML
Функция wp_sprintf()
также может быть полезна при создании динамических HTML-структур с использованием аргументов.
$unique_id = wp_unique_id('input_');
echo wp_sprintf('<label for="%s">Введите текст:</label>', $unique_id);
echo wp_sprintf('<input id="%s" type="text" name="text_input">', $unique_id);
/* Пример HTML результата:
<label for="input_10">Введите текст:</label>
<input id="input_10" type="text" name="text_input">
*/
Заключение
Функция wp_sprintf()
значительно упрощает форматирование строк в WordPress и позволяет создавать динамические шаблоны с поддержкой специальных форматов, таких как %l
.