wp_readonly()WP 5.9.0

Выводит readonly='readonly', если совпадают первые два параметра функции.

Функция нужна для удобства, когда в поле формы нужно вывести атрибут readonly в зависимости от значения php переменной.

При сравнении значений они предварительно приводятся к одному типу (строка), а затем сравниваются:

(string) $one === (string) $two

Таким образом не точное совпадение будет все равно срабатывать, например:

  • число 1 будет равно строке '1'.
  • true будет равно 1 или '1'.
  • false будет равно 0 или '0'.
  • и т.д.

Это одна функций помощников для форм: checked(), disabled(), selected(), wp_readonly().

Работает на основе: __checked_selected_helper()

Хуков нет.

Возвращает

Строку. Cтроку readonly='readonly' или пустую строку.

Также, при $echo = true (по умолчанию) выводит результат на экран.

Использование

<?php wp_readonly( $readonly, $current, $echo ); ?>
$readonly(разное) (обязательный)
Значение которое нужно сравнить. Например true.
$current(разное)
Второе значение, будет сравниваться с первым.
По умолчанию: true
$echo(true|false)
Нужно ли выводить данные на экран или просто возвращать строку.
По умолчанию: true

Примеры

0

#1 Демонстация использования

Допустим у нас есть код, в котором определяется переменная $is_readonly и если в ней находится true, нам нужно вывести атрибут readonly для поля формы:

<?php
// какая-то логика ...
$is_readonly = true;
?>

<form ...>
	...
	<input type="text" value="Some string" <?php wp_readonly( $is_readonly ) ?> />
	...
</form>
0

#2 Добавим атрибут readonly

Допустим что для поля нужно добавить значение readonly, если текущий юзер не может редактировать пост 25:

<input type='text' name='myname' value='Значение' <?php readonly( current_user_can( 'edit_post', 25 ) ) ?> />
0

#3 Еще примеры, как работает функция

$is_readonly = true;

wp_readonly( $is_readonly ); // выведет readonly='readonly'
$is_readonly = false;

wp_readonly( $is_readonly ); // ничыго не выведет
$readonly = wp_readonly( '1', true, false );

var_dump( $readonly ); // string(20) " readonly='readonly'"

Список изменений

С версии 5.9.0 Введена.

Код wp_readonly() WP 6.5.2

function wp_readonly( $readonly_value, $current = true, $display = true ) {
	return __checked_selected_helper( $readonly_value, $current, $display, 'readonly' );
}