it-swarm.com.de

funktion get_option

Ich versuche gerade, mein eigenes Theme zu erstellen, aber ich bin mir nicht ganz sicher, wie die Funktion get_option () funktioniert, denn wie kommt das?.

echo get_option('show_header', 'sultenhest_theme_display_options');
echo get_option('sultenhest_theme_display_options')['show_header'];

..both gibt 1 zurück (aber Dreamweaver mag die zweite Option nicht). Während

echo get_option('Twitter', 'sultenhest_theme_social_options');

.. gibt einfach 'sultenhest_theme_social_options' zurück, was falsch ist.

Eine Option wäre, das Array als solches zu definieren

$social_options = get_option( 'sultenhest_theme_social_options' );

und nenne es so

echo $social_options['Twitter'];

Es gibt den korrekten String zurück, aber es funktioniert nur in der Datei header.php (wenn das Array dort definiert ist) und nicht in z. footer.php.


UPDATE: Nach teilweise ialocin und Brad Dalton habe ich diese Lösung gefunden, die wie ein Zauber wirkt:

function sultenhest($option, $arg){
  $the_array = array();
  foreach( get_option('sultenhest_theme_'.$option) as $key => $item ){
    $the_array[$key] = $item;
  }
  return $the_array[$arg];
}

und wie folgt ausgeben:

echo sultenhest('social_options', 'Twitter') ? '<a href="' . sultenhest('social_options', 'Twitter') . '">Twitter</a>' : '';
2
Sultenhest

Sie verwenden get_option() falsch, erste Variante, schauen Sie sich die get_option() -Dokumentation noch einmal an. Grundsätzlich kann man mit der Funktion nicht direkt auf ein Array-Element zugreifen, es unterstützt es nur nicht.

Die zweite Variante sollte möglich sein, aber Sie brauchen mindestens PHP 5.4 - wenn ich mich nicht total irre; Ich weiß nichts über Dreamweaver.

Der Grund, warum Sie nicht überall auf die Variable zugreifen können, ist der Gültigkeitsbereich der Variablen. Lesen Sie hierzu das Handbuch PHP: Gültigkeitsbereich der Variablen .

Das Einfachste, was ich mir vorstellen kann, ist, es auf die altmodische Art und Weise zu machen und eine Funktion zu erstellen, die Sie verwenden können. Beispielhaft so:

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;
    }
}
3
Nicolai