Come Utilizzare la Checkbox nella Pagina delle Opzioni Personalizzate Usando la Setting API

18 ago 2013, 00:06:20
Visualizzazioni: 29.1K
Voti: 11

Potresti dirmi come posso aggiungere una checkbox alla Setting API nella creazione di una Pagina delle Opzioni Personalizzate? Sto usando il seguente codice per aggiungere una casella di testo che funziona perfettamente, ma sono totalmente confuso su come aggiungere una checkbox alla Setting API e alle opzioni. Ho provato a cambiare il tipo di input in checkbox ma non sono sicuro cosa inserire nel valore, inoltre quando salvo il form la checkbox appare ancora deselezionata!

add_settings_field('the_option_label',
                    'Mostra Paragrafo:',
                     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']}'/>";
    }

Grazie

1
Commenti

È semplice da leggere e capire. - http://www.kvcodes.com/2016/10/creating-custom-options-page-wordpress/

Kvvaradha Kvvaradha
25 ott 2016 16:04:37
Tutte le risposte alla domanda 1
3
11

Consulta: La Guida Completa all'API delle Impostazioni di WordPress (Parte 8: Validazione, Sanificazione e Input II):

add_settings_field(  
    'Elemento Checkbox',  
    'Elemento 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">Questo è un esempio di checkbox</label>';

    echo $html;

}

MODIFICA: I campi checkbox non utilizzano l'attributo value per determinare se la casella è selezionata. Utilizzano un attributo checked. La riga $html sopra è stata modificata utilizzando il codice presente più avanti nell'articolo citato. Leggi gli articoli per i dettagli.

18 ago 2013 02:58:14
Commenti

Ciao Till, grazie per il tuo commento. Ho provato il tuo suggerimento e il codice del link ma ho ancora qualche problema qui! Il problema è che quando spunto la checkbox e salvo le opzioni, la nuova pagina risulta ancora deselezionata! Voglio dire, non sta leggendo i dati dalle Opzioni! Puoi per favore dirmi come fare questo? So che nelle text box possiamo usare value='{$this->options['the_option_label']} ma per quanto riguarda le checkbox?

Mona Coder Mona Coder
18 ago 2013 08:41:49

Modificato la risposta di Till con il codice corretto dall'articolo.

Charles Clarkson Charles Clarkson
18 ago 2013 09:12:59

Forse è meglio se controlliamo che l'opzione sia impostata come checked( 1, $options['checkbox_example'] ?? '', false ). Giusto per evitare errori o messaggi di warning.

JalalJaberi JalalJaberi
25 lug 2023 17:44:51