WordPress проверено = & quot; проверено & quot; синтаксис

В возрасте всего лишь нескольких недель я установил простой плагин для отображения кнопки «Поделиться в социальных сетях» в меню. Относится к Создание собственного плагина для обмена социальными сетями для WordPress.

Затем плагин был успешно создан. Но у меня есть вопрос о синтаксисе, почему. Если я добавлю приведенный ниже синтаксис в программу, то будет показано дважды = «флажок».

echo "<input type='checkbox' name='social-share' value='1' " . checked(1, get_option('social-share'), true) ." /> ";

После этого я нашел другой код, чтобы предотвратить это.

?>
<input type="checkbox" name="social-share" value="1" <?php checked(1, get_option('social-share'), true); ?> /> Check for Yes
<?php

а также Функция Ссылка / проверено отображение проверил = ‘проверено’

checked( '1', get_option( 'wwo_enable_'.$lrole ), false )

Интересно, может кто-нибудь сказать мне, почему использовать формат HTML, чтобы показать <?php checked(1, get_option('social-share-wechat'), true); ?> синтаксис не покажет дважды?

1

Решение

Вы видели неожиданные результаты, потому что вы повторяли функцию, которая уже генерировала вывод.

Третий аргумент в пользу checked() is ‘echo’, который определяет, должна ли функция выводить значение или возвращать его. Вам нужна была функция для возврата значения в контексте, в котором вы ее использовали.

echo '<input type="checkbox" name="social-share" value="1" ' . checked( 1, get_option( 'social-share' ), false ) . '/>';

https://codex.wordpress.org/Function_Reference/checked

Код, который вы заменили, обрабатывает вещи по-другому:

<input type="checkbox" name="social-share" value="1" <?php checked(1, get_option('social-share'), true); ?> />

Здесь вы больше не повторяете результат checked() поэтому вы хотите, чтобы он генерировал выходные данные, поэтому для третьего аргумента правильно установить значение true.

0

Другие решения

Пожалуйста, попробуйте ниже вещь:

<input type="checkbox" name="social-share" value="1" <?php if ( 1 == get_option('social-share') ) echo 'checked="checked"'; ?> >
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector