Функция 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.