Wie sieht man alles in get_option ()?

Bei der Themen- und Pluginentwicklung gehe ich gerne komplett durch, um sicherzustellen, dass es keine Probleme gibt und ich keine Fehler bekomme. NUR in der Entwicklung füge ich in meiner footer.php folgendes footer.php zu sehen, was vor sich geht:

 if (is_user_logged_in()) : // GET POST META // https://developer.wordpress.org/reference/functions/get_post_meta/ global $wp_query; $post_meta = get_post_meta($post->ID); echo '

Post Meta

'; echo '
'; var_dump($post_meta); echo '

'; wp_reset_query(); // SEE WHAT IS ASSIGNED $queried_object = get_queried_object(); echo '

Quered Object

'; echo '

'; var_dump($queried_object); echo '

'; wp_reset_query(); endif;

Da ich jedoch versucht habe, mehr Einstellungsseiten anstelle von Widgets zu implementieren, möchte ich testen, was ich bekomme, wenn ich eine Einstellungsseite erstelle, anstatt jede get_option('whatever'); Ich möchte alles abcasting, damit ich sehen kann, was gesammelt wird und ob Fehler auftreten. Aber wenn ich Folgendes mache:

 echo '

Get Options

'; echo '
'; var_dump(get_option()); echo '

'; wp_reset_query();

Ich habe einen Fehler bekommen. Wenn ich get_option() recherchiere, get_option() ich nichts, was einen get_option() diskutiert, und ich finde keine Lösung, wenn ich die get-Option betrachte . Gibt es eine Möglichkeit, alles in get_option() ?

BEARBEITEN:

Um dies zu verdeutlichen, wäre dies nützlich, um die Seitenentwicklung einzustellen, also gibt es eine Möglichkeit, die Optionen aus den Einstellungen zu entfernen? Sowie:

 function wpse_267354() { add_submenu_page( 'options-general.php', 'Foobar Page', // $page_title 'PAGE NAME', // $menu_title 'manage_options', // $capability 'wpse_267354_slug', // $menu_slug 'wpse_267354_function' // $function ); } add_action( 'admin_menu', 'wpse_267354' ); 

Solutions Collecting From Web of "Wie sieht man alles in get_option ()?"

Sie benötigen eine Möglichkeit, Ihre Einstellungen zu verwalten. Sie können alle Methoden der Verwaltung verwenden, wie Sie es für richtig halten. Allerdings habe ich eine ziemlich “einfache” Einstellungs- PHP Class , mit der Sie die Einstellungen Ihres Plugins als Objekt mit Eigenschaften abrufen können.

Das Objekt ist die Einstellungen Ihres Plugins. Die Eigenschaften des Objekts enthalten die eigentlichen Einstellungen.

Es ist einfach anzupassen und zu erweitern. Hoffentlich hilft Ihnen das, Ihre Plugins und / oder Theme (s) einfacher zu pflegen.

Diese class wird:

  1. Hilft Ihnen, die Brücke zwischen dem, was das Plugin standardmäßig tut, und dem, was der Benutzer vom Plugin möchte, besser zu verstehen.
  2. Helfen Sie Ihnen, besser zu verstehen, wie Ihr Plugin funktioniert, und verringern Sie die Wahrscheinlichkeit unerwarteter Fehler im Zusammenhang mit dem Einstellungsmanagement.
  3. Hilft Ihnen, alle Einstellungen oder bestimmte Einstellungen in einer strukturierten Weise konsistent zu erhalten.

Beispiel für Plugin-Einstellungen class:

 < ?php if ( ! defined( '\ABSPATH' ) ) { exit; } if ( class_exists( 'MBE_Settings' ) ) { return false; } /** * This is an example Settings Class for managing Plugin Settings. * * @author Michael Ecklund * @author_url https://www.michaelbrentecklund.com * * Class MBE_Settings */ class MBE_Settings { /** * @var array */ public $general = array(); /** * @var array */ public $display = array(); /** * @var array */ private $default_settings = array(); /** * @var array */ private $user_settings = array(); /** * @var array */ private $settings = array(); /** * Settings constructor. * * @author Michael Ecklund * @author_url https://www.michaelbrentecklund.com * */ public function __construct() { $this->set_default_settings(); $this->set_user_settings(); if ( ! $this->set_settings() ) { $this->__destruct(); return false; } return true; } /** * Sets the default plugin settings in the event that the user hasn't configured the plugin. * * @author Michael Ecklund * @author_url https://www.michaelbrentecklund.com * * @return bool */ private function set_default_settings() { $default_settings = array(); # General Settings $default_settings['general'] = array( 'posts_per_page' => 10, 'description' => 'Example Description' ); # Display Settings $default_settings['display'] = array( 'icons' => 0, 'descriptions' => 1 ); $this->default_settings = $default_settings; return true; } /** * Sets plugin settings configured by the user. * * @author Michael Ecklund * @author_url https://www.michaelbrentecklund.com * * @return bool */ private function set_user_settings() { $user_settings = array(); $user_settings['general'] = get_option( 'mbe-general-settings' ); // General Settings $user_settings['display'] = get_option( 'mbe-display-settings' ); // Display Settings $this->user_settings = array_filter( $user_settings ); return true; } /** * Merges default settings with user configured settings, producing final settings to be used by the plugin. * * @author Michael Ecklund * @author_url https://www.michaelbrentecklund.com * * @return bool */ private function set_settings() { $default_settings = $this->get_default_settings(); if ( $user_settings = $this->get_user_settings() ) { $settings['general'] = wp_parse_args( $user_settings['general'], $default_settings['general'] ); $settings['display'] = wp_parse_args( $user_settings['display'], $default_settings['display'] ); } else { $settings = $default_settings; } $this->settings = $settings; # General Settings if ( isset( $settings['general'] ) ) { $this->general = $settings['general']; } # Display Settings if ( isset( $settings['display'] ) ) { $this->display = $settings['display']; } return true; } /** * Retrieve default plugin settings. * * @author Michael Ecklund * @author_url https://www.michaelbrentecklund.com * * @return array */ public function get_default_settings() { return $this->default_settings; } /** * Retrieve plugin settings configured by the user. * * @author Michael Ecklund * @author_url https://www.michaelbrentecklund.com * * @return array */ public function get_user_settings() { return $this->user_settings; } /** * Retrieve all plugin settings or specific plugin settings. * * @author Michael Ecklund * @author_url https://www.michaelbrentecklund.com * * @param String|null $group * * @return array|bool */ public function get_settings( String $group = null ) { if ( ! is_null( $group ) ) { if ( $group == 'default' ) { return $this->get_default_settings(); } else { $group = str_replace( '-', '_', $group ); if ( ! property_exists( $this, $group ) ) { return false; } return $this->{$group}; } } return $this->settings; } /** * Destroys the object in the event of failure. * * @author Michael Ecklund * @author_url https://www.michaelbrentecklund.com * */ public function __destruct() { $this->general = null; $this->display = null; unset( $this->default_settings ); unset( $this->user_settings ); } } /** * Wrapper function to retrieve Plugin Settings from Settings Class. * * @author Michael Ecklund * @author_url https://www.michaelbrentecklund.com * * @param String|null $group * * @return array|bool */ function mbe_get_settings( String $group = null ) { $settings = new MBE_Settings(); return $settings->get_settings( $group ); } ?> 

Um dies anzupassen, würden Sie jede Eigenschaft so einstellen, wie Sie es für richtig halten. Stellen Sie sich die Eigenschaft als “Gruppenname” oder “Abschnittsname” vor. set_default_settings(); dann entsprechend an: set_default_settings(); , set_user_settings(); und set_settings(); .

Hinweis: Diese class behandelt nur das Abrufen von Plugin-Einstellungen. Diese class kümmert sich nicht um die Aktualisierung der Plugin-Einstellungen.