Cómo Usar Checkbox en una Página de Opciones Personalizada Usando la API de Configuración
¿Podrían indicarme cómo puedo agregar un checkbox a la Settings API al crear una Página de Opciones Personalizada? Estoy usando el siguiente código para agregar un campo de texto que funciona perfectamente, pero estoy totalmente confundido sobre cómo agregar un checkbox a la Settings API y opciones. Intenté cambiar el tipo de input a checkbox pero no estoy seguro qué poner en el Value, además cuando guardo el formulario el checkbox sigue apareciendo desmarcado!
add_settings_field('the_option_label',
'Mostrar Párrafo:',
array($this,'the_option_label_setting'),
__FILE__,
'hte_main_section');
public function the_option_label_setting()
{
echo "<input name='My_Theme_Options[the_option_label]' type='text' value='{$this->options['the_option_label']}'/>";
}
Gracias

Echa un vistazo a: La Guía Completa de la API de Configuración de WordPress (Parte 8: Validación, Sanitización y Entrada II):
add_settings_field(
'Checkbox Element',
'Checkbox Element',
'sandbox_checkbox_element_callback',
'sandbox_theme_input_examples',
'input_examples_section'
);
function sandbox_checkbox_element_callback() {
$options = get_option( 'sandbox_theme_input_examples' );
$html = '<input type="checkbox" id="checkbox_example" name="sandbox_theme_input_examples[checkbox_example]" value="1"' . checked( 1, $options['checkbox_example'], false ) . '/>';
$html .= '<label for="checkbox_example">Este es un ejemplo de un checkbox</label>';
echo $html;
}
EDITADO: Los campos de checkbox no utilizan el atributo value
para determinar si la casilla está marcada. Utilizan un atributo checked
. La línea $html
de arriba ha sido editada usando el código del artículo referenciado anteriormente. Lee los artículos para más detalles.

Hola Till, gracias por tu comentario. Probé tu sugerencia y el código del enlace, pero todavía tengo algunos problemas aquí. El problema es que cuando marco la casilla de verificación y guardo las opciones, la nueva página sigue sin estar marcada. Es decir, no está leyendo los datos de las Opciones. ¿Podrías decirme cómo solucionar esto? Sé que en un cuadro de texto podemos usar value='{$this->options['the_option_label']}', pero ¿qué hay de la casilla de verificación?

Edité la respuesta de Till con el código corregido del artículo.
