WordPress как на ладони
Шаблоны, плагины и темы для настоящих поклонников Elementor. От TemplateMonster.com wordpress jino

checked() WP 1.0.1

Используется в checkbox и radio полях формы. Сделана для удобства, проверяет два значения и если они совпадают выводит атрибут checked='checked' для текущего поля формы.

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

Обратите внимание, что перед выводимым атрибутом ставится пробел: " checked='checked'".

Хуков нет.

Возвращает

Выводит на экран атрибут checked='checked', если переданные значения равны между собой или пустую строку. Если третий параметр ($echo) установлен в false, то функция вернет строку.

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

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

Примеры

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

Смотрите что выводит функция в зависимости от ввода разных параметров.

checked( 1 );           // checked='checked'
checked( 0 );           // ''

checked( '1' );         // checked='checked'
checked( '0' );         // ''

checked( true );        // checked='checked'
checked( false );       // ''

checked( 1, '1' );      // checked='checked'
checked( true, '1' );   // checked='checked'
checked( true, 'str' ); // ''

checked( 2 );           // ''
checked( 'str' );       // ''
checked( array() );     // ''
checked( array(true) ); // ''
checked( array(1) );    // ''

#2 Пример использования checked() в коде

<?php
// получим опцию из базы данных. Значение опции - это массив.
$option = get_option('slug_option');

// Получим значение необходимой нам опции
$checked = $option['self-destruct']; // ожидается что тут или true или 1
?>
<input name="slug_option[self-destruct]" value="1"<?php checked( $checked ); ?>/>

#3 Сравним вывод PHP и с помощью checked()

Вариант с if():

<input type='checkbox' name='options[postlink]' value='1' <?php if ( 1 == $options['postlink'] ) echo 'checked="checked"'; ?> >

Вариант с checked():

<input type="checkbox" name="options[postlink]" value="1"<?php checked( $options['postlink'] ); ?> >

Код checked: wp-includes/general-template.php VER 4.9.8

<?php
function checked( $checked, $current = true, $echo = true ) {
	return __checked_selected_helper( $checked, $current, $echo, 'checked' );
}

Cвязанные функции

Из метки: form (функции формы)

Еще из метки: Вспомогательные

9 комментов
  • Спасибо за статью.

    Ответить3.2 года назад #
  • Переменная $current не обязательна для заполнения, там по умолчанию стоит true.

    1
    Ответить3.2 года назад #
    • Kama6811

      Спасибо, ценное замечание, подправил статью чуток. thank_you

      Ответить3.2 года назад #
  • Илья

    Вот только почему они решили использовать одинарные кавычки(checked='checked'), вместо двойных, которые используются в остальной разметке? В чем прикол?

    Ответить1.4 год назад #
    • Илья

      И да, возможно стоит уточнить что она выводит не checked='checked', а checked='checked', то бишь с пробелом в начале.

      Ответить1.4 год назад #
      • Kama6811

        почему они решили использовать одинарные кавычки

        Нет прикола просто так записали, потому что удобно было так.

        $result = " $type='$type'";

        Мне это тоже не очень нравится...

        стоит уточнить что она выводит

        Уточнил, спасибо! thank_you

        Ответить1.4 год назад #
  • Подскажи, пожалуйста, как можно установить в чек-боксе checked через functions.php темы в Woo ? scratch_one-s_head

    http://prntscr.com/jqb1ds

    Ответить3 месяца назад #
    • @ campusboy2994 cайт: www.youtube.com/c/wpplus

      Привет, попробуй так:

      add_filter( 'woocommerce_terms_is_checked', '__return_true', 10 );
      add_filter( 'woocommerce_terms_is_checked_default', '__return_true', 10 );
      2
      Ответить3 месяца назад #
      • Дима, спасибо.
        Отлично сработало. good2
        P.s. тестил на дочерней теме

        1
        Ответить3 месяца назад #
Здравствуйте, !     Войти . Зарегистрироваться