Cum să folosești Checkbox în Pagina de Opțiuni Personalizate folosind Setting API

18 aug. 2013, 00:06:20
Vizualizări: 29.1K
Voturi: 11

Îmi puteți spune cum pot adăuga un checkbox în Setting API pentru crearea unei Pagini de Opțiuni Personalizate? Folosesc următorul cod pentru a adăuga o căsuță text care funcționează perfect, dar sunt total confuz cum să adaug un checkbox în setting API și opțiuni. Am încercat să actualizez tipul input-ului la checkbox dar nu sunt sigur ce să pun la Valoare, în plus când salvez formularul checkbox-ul apare în continuare nebifat!

add_settings_field('the_option_label',
                    'Afișează Paragraf:',
                     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']}'/>";
    }

Mulțumesc

1
Comentarii

Este simplu de citit și de înțeles. - http://www.kvcodes.com/2016/10/creating-custom-options-page-wordpress/

Kvvaradha Kvvaradha
25 oct. 2016 16:04:37
Toate răspunsurile la întrebare 1
3
11

Aruncă o privire la: Ghidul complet pentru WordPress Settings API (Partea a 8-a: Validare, Sanitizare și Input II):

add_settings_field(  
    'Element Checkbox',  
    'Element Checkbox',  
    '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">Acesta este un exemplu de checkbox</label>';

    echo $html;

}

EDIT: Câmpurile checkbox nu folosesc atributul value pentru a determina dacă caseta este bifată. Ele folosesc un atribut checked. Linia $html de mai sus a fost editată folosind codul din articolul menționat mai sus. Citește articolele pentru detalii.

18 aug. 2013 02:58:14
Comentarii

Salut Till, mulțumesc pentru comentariu. Am încercat sugestia ta și codul din link, dar încă am niște probleme aici! Problema este că atunci când bifez caseta și salvez opțiunile, noua pagină este încă debifată! Adică nu citește datele din Opțiuni! Poți să-mi spui te rog cum să fac asta? Știu că într-o căsuță de text putem folosi value='{$this->options['the_option_label']}', dar cum rămâne cu checkbox-ul?

Mona Coder Mona Coder
18 aug. 2013 08:41:49

Editat răspunsul lui Till cu codul corectat din articol.

Charles Clarkson Charles Clarkson
18 aug. 2013 09:12:59

Poate e mai bine să verificăm dacă opțiunea este setată astfel: checked( 1, $options['checkbox_example'] ?? '', false ). Doar pentru cazul în care nu vrem să apară o eroare sau un mesaj de avertizare pentru asta.

JalalJaberi JalalJaberi
25 iul. 2023 17:44:51