Функция wp_readonly()
в WordPress используется для вывода атрибута readonly
в HTML-элементах формы, если выполняется определенное условие. Она особенно полезна для управления доступностью полей на основе переменных в PHP. Если первые два параметра совпадают, функция выводит readonly="readonly"
, что делает поле доступным только для чтения.
wp_readonly( mixed $readonly_value, mixed $current = true, bool $display = true ): string
wp_readonly()
сравнивает два переданных значения, и если они идентичны, то выводит атрибут readonly
. Это позволяет гибко управлять формами, добавляя readonly
только при выполнении определенных условий.
Параметры
- $readonly_value (разный тип, обязательный) — первое значение для сравнения.
- $current (разный тип, необязательный) — второе значение для сравнения. Если не указано, по умолчанию используется
true
. - $display (bool, необязательный) — определяет, следует ли выводить результат сразу или вернуть его в виде строки. По умолчанию
true
.
Возвращаемое значение
- string — строка
readonly="readonly"
, если значения совпадают, или пустая строка, если нет.
Пример 1: Условное добавление атрибута readonly
в зависимости от значения переменной
Предположим, у нас есть переменная $is_readonly
, которая определяет, нужно ли делать поле формы доступным только для чтения.
<?php
// Определение логики
$is_readonly = true;
?>
<form method="post">
<label for="example">Пример:</label>
<input type="text" id="example" name="example" value="Текст" <?php wp_readonly($is_readonly); ?> />
</form>
Результат: Поле будет доступно только для чтения, если $is_readonly
равно true
.
Пример 2: Добавление readonly
для поля, если пользователь не может редактировать запись
В этом примере атрибут readonly
добавляется в поле, если текущий пользователь не имеет прав на редактирование определенной записи.
<?php
// Проверка прав доступа к записи с ID 25
$is_readonly = !current_user_can('edit_post', 25);
?>
<input type="text" name="username" value="Имя пользователя" <?php wp_readonly($is_readonly); ?> />
Результат: Поле будет доступно только для чтения, если у пользователя нет прав на редактирование записи с ID 25.
Пример 3: Сравнение значений для динамического управления readonly
Функция может работать и с конкретными значениями для более точного управления выводом readonly
.
$value1 = 'admin';
$value2 = 'editor';
// Добавляет `readonly`, если $value1 и $value2 равны
wp_readonly($value1, $value2); // не выведет `readonly`, так как значения не совпадают
Результат: Атрибут readonly
не будет выведен, так как $value1
и $value2
не равны.
Пример 4: Использование wp_readonly()
без немедленного вывода
Функция может вернуть результат в виде строки для использования в дальнейшем коде, если display
установлен в false
.
$is_readonly = 'yes';
$readonly = wp_readonly($is_readonly, 'yes', false);
echo '<input type="text" name="field" value="Пример"' . $readonly . ' />';
Результат: Поле будет содержать атрибут readonly
, так как значения совпадают, и строка readonly="readonly"
передается в атрибуты.
Заключение
Функция wp_readonly()
в WordPress упрощает добавление атрибута readonly
к HTML-элементам в формах. Она особенно полезна, когда требуется динамическое управление доступностью полей формы в зависимости от условий.