J'essaie actuellement de créer mon propre thème, mais je ne sais pas trop comment fonctionne la fonction get_option (), car pourquoi cela se produit-il?.
echo get_option('show_header', 'sultenhest_theme_display_options');
echo get_option('sultenhest_theme_display_options')['show_header'];
..both renvoie 1 (mais Dreamweaver n'aime pas la deuxième option). Tandis que
echo get_option('Twitter', 'sultenhest_theme_social_options');
..simply renvoie 'sultenhest_theme_social_options', ce qui est incorrect.
Une option serait de définir le tableau en tant que tel
$social_options = get_option( 'sultenhest_theme_social_options' );
et l'appelle comme ça
echo $social_options['Twitter'];
Il renvoie la chaîne correcte, mais il ne fonctionne que dans le fichier header.php (si le tableau y est défini) et non dans, par exemple. footer.php.
UPDATE: Après partiellement ialocin et Brad Dalton, je suis arrivé à cette solution, qui fonctionne comme un charme:
function sultenhest($option, $arg){
$the_array = array();
foreach( get_option('sultenhest_theme_'.$option) as $key => $item ){
$the_array[$key] = $item;
}
return $the_array[$arg];
}
et en le faisant écho comme ceci:
echo sultenhest('social_options', 'Twitter') ? '<a href="' . sultenhest('social_options', 'Twitter') . '">Twitter</a>' : '';
Vous utilisez get_option()
faux, première variante, jetez donc un autre regard sur la documentation get_option()
. En gros, vous ne pouvez pas accéder directement à un élément de tableau avec la fonction, il ne le prend tout simplement pas en charge.
La deuxième variante devrait être possible, mais vous avez besoin d'au moins PHP 5.4 - si je ne me trompe pas totalement; Je ne sais rien de Dreamweaver.
La raison pour laquelle vous ne pouvez pas accéder à la variable partout où vous le souhaitez est la portée de la variable, à lire en détail sur PHP Manual: Variable scope .
La chose la plus facile que j'imagine est de le faire à l'ancienne, il suffit de créer une fonction que vous pouvez utiliser. Un exemple comme celui-ci:
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;
}
}