Funzione get_option
Sto cercando di creare il mio tema personalizzato, ma non sono sicuro di come funzioni la funzione get_option(), perché questo...
echo get_option('show_header', 'sultenhest_theme_display_options');
echo get_option('sultenhest_theme_display_options')['show_header'];
...restituisce entrambi 1 (ma Dreamweaver non gradisce la seconda opzione). Mentre
echo get_option('twitter', 'sultenhest_theme_social_options');
...restituisce semplicemente 'sultenhest_theme_social_options', che è errato.
Un'opzione sarebbe definire l'array così
$social_options = get_option( 'sultenhest_theme_social_options' );
e chiamarlo in questo modo
echo $social_options['twitter'];
Restituisce la stringa corretta, ma funziona solo nel file header.php (se l'array è definito lì) e non in, ad esempio, footer.php.
AGGIORNAMENTO: Seguendo in parte ialocin e Brad Dalton ho trovato questa soluzione, che funziona perfettamente:
function sultenhest($option, $arg){
$the_array = array();
foreach( get_option('sultenhest_theme_'.$option) as $key => $item ){
$the_array[$key] = $item;
}
return $the_array[$arg];
}
e richiamarlo così:
echo sultenhest('social_options', 'twitter') ? '<a href="' . sultenhest('social_options', 'twitter') . '">Twitter</a>' : '';

Stai utilizzando get_option()
in modo errato, prima variante, quindi dai un'altra occhiata alla documentazione di get_option()
. Fondamentalmente non puoi accedere direttamente a un elemento dell'array con la funzione, semplicemente non lo supporta.
La seconda variante dovrebbe essere possibile, ma hai bisogno almeno di PHP 5.4 - se non mi sbaglio totalmente; non so nulla riguardo a Dreamweaver.
Il motivo per cui non puoi accedere alla variabile ovunque vuoi è l'ambito della variabile, leggi a riguardo sul Manuale PHP: Ambito delle variabili.
La cosa più semplice che mi viene in mente è farlo alla vecchia maniera, crea una funzione che puoi utilizzare. Ad esempio così:
function wpse_179693_echo_my_options_array_value() {
$social_options = get_option( 'sultenhest_theme_social_options' );
if ( isset( $social_options['twitter'] ) ) {
echo $social_options['twitter'];
} else {
return FALSE;
}
}

get_option('some_option')['some_key']
in realtà funziona in PHP 5.4, si chiama dereferenziazione di array.
