Die meisten WordPress -Themen haben eine Seite mit Themeneinstellungen, um seine Funktionen, Verhalten und Stile anzupassen. Durch die Bereitstellung einer Seite mit Themeneinstellungen mit Ihrem Thema wird es Ihren Benutzern einfach, Ihr Thema anzupassen, anstatt die PHP- oder CSS -Dateien direkt zu bearbeiten. Dies erleichtert das Aktualisieren Ihres Themas, da Benutzer die von ihnen vorgenommenen Änderungen nicht verlieren.
In diesem Tutorial lernen wir die von WordPress empfohlene Art, eine Seite mit den Themeneinstellungen zu erstellen, dh unter Verwendung der WordPress -Einstellungen -API. Die WordPress -Einstellungs -API wurde in WordPress 2.7 hinzugefügt und ist seitdem zu einer der beliebtesten WordPress -APIs geworden. Dieses Tutorial ist auch nützlich, wenn Sie vorhaben, Ihrem WordPress -Plugin eine Einstellungsseite hinzuzufügen. Lassen Sie uns beginnen.
Optionen in Ihrer Seite "Themeneinstellungen" hängen davon ab, welche Funktionen und Anpassungen Ihr Thema unterstützt. Trotzdem gibt es einige gemeinsame Dinge, die auf jeder Seite mit den Themeneinstellungen enthalten sind. Einige der gängigen Optionen sind: Soziale URLs, statische oder reaktionsschnelle Layout und Header -Logo, um nur einige zu nennen. In diesem Tutorial zeige ich Ihnen, wie Sie diese vier Optionen in unsere Seite "Themeneinstellungen" aufnehmen.
Zuerst müssen wir ein Menüelement im Administratorbereich erstellen, das auf unsere Seite der Themeneinstellungen zugreift.
Wir können ein Menüelement mit der WordPress -Menü -API erstellen. Hier ist der Code, um einen Menüelement zu erstellen.
<span>function theme_settings_page(){} </span> <span>function add_theme_menu_item() </span><span>{ </span> <span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99); </span><span>} </span> <span>add_action("admin_menu", "add_theme_menu_item");</span>
Hier ist Theme-Panel die eindeutige ID, die unseren Menüelement darstellt. themen_settings_page ist der Rückruf zum Anzeigen des Inhalts der von der Menü -API erstellten Seite. Wir werden diese Funktion als nächstes codieren.
So sieht es aus.
Die Einstellungs -API wird verwendet, um die von der Menüelement -API erstellte Seite zu füllen. Eine Einstellungsseite ist in Abschnitte und Felder unterteilt.
Aus Gründen dieses Tutorials erstellen wir nur einen einzelnen Abschnitt und stellen alle Felder in diesen Abschnitt ein.
Hier ist der Code für die Funktion topic_Setings_page, um einen Abschnitt zu erstellen und die Schaltfläche Senden hinzuzufügen.
<span>function theme_settings_page(){} </span> <span>function add_theme_menu_item() </span><span>{ </span> <span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99); </span><span>} </span> <span>add_action("admin_menu", "add_theme_menu_item");</span>
Hier registrieren wir einen Abschnitt mit Einstellungen_Field mit einem ID -Abschnitt. Themenoptionen sind eine Gruppen-ID für alle Felder, die zu einem Abschnitt gehören. Schließlich spiegelt die Funktion subief_button () die Schaltfläche Senden für unsere Seite "Themeneinstellungen" an.
So sollte das aussehen.
Fügen wir nun Felder auf unserer Einstellungsseite hinzu, um unsere URLs von Facebook und Twitter -Profil zu speichern. Fast jedes WordPress -Thema hat soziale Profiloptionen, daher ist es ein praktisches Beispiel.
Hier ist der Code zum Hinzufügen von Eingabetxtfeldern mithilfe der Einstellungs -API.
function theme_settings_page() { ?> <span><span><span><div</span> class<span>="wrap"</span>></span> </span> <span><span><span><h1</span>></span>Theme Panel<span><span></h1</span>></span> </span> <span><span><span><form</span> method<span>="post"</span> action<span>="options.php"</span>></span> </span> <span><span><?php </span></span><span> <span>settings_fields("section"); </span></span><span> <span>do_settings_sections("theme-options"); </span></span><span> <span>submit_button(); </span></span><span> <span>?></span> </span> <span><span><span></form</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><?php </span></span><span><span>}</span></span>
Nach dem Initialisierungsbereich des Administrators registrieren wir die Abschnitte und Felder. Hier verwenden wir drei wichtige Funktionen:
So sollte unsere Einstellungsseite jetzt aussehen.
Wir haben jetzt gesehen, wie Sie mit unserer Einstellungsseite Eingabetxtfelder hinzufügen. Sehen wir uns an, wie Sie ein Kontrollkästchen hinzufügen, indem Sie eine Option zwischen statischen oder reaktionsschnellen Layouts angeben.
Lassen Sie uns sehen, wie die Funktion display_theme_panel_fields erweitert werden kann, um ein Kontrollkästchen zwischen Layouts anzuzeigen.
Hier ist der Code, um dies zu erreichen.
function display_twitter_element() { ?> <span><span><span><input</span> type<span>="text"</span> name<span>="twitter_url"</span> id<span>="twitter_url"</span> value<span>="<span><?php echo get_option('twitter_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_facebook_element() </span></span><span><span>{ </span></span><span> <span>?></span> </span> <span><span><span><input</span> type<span>="text"</span> name<span>="facebook_url"</span> id<span>="facebook_url"</span> value<span>="<span><?php echo get_option('facebook_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_theme_panel_fields() </span></span><span><span>{ </span></span><span> <span>add_settings_section("section", "All Settings", null, "theme-options"); </span></span><span> </span><span> <span>add_settings_field("twitter_url", "Twitter Profile Url", "display_twitter_element", "theme-options", "section"); </span></span><span> <span>add_settings_field("facebook_url", "Facebook Profile Url", "display_facebook_element", "theme-options", "section"); </span></span><span> </span><span> <span>register_setting("section", "twitter_url"); </span></span><span> <span>register_setting("section", "facebook_url"); </span></span><span><span>} </span></span><span> </span><span><span>add_action("admin_init", "display_theme_panel_fields");</span></span>
Wir haben ein neues Einstellungsfeld mit add_Setings_field hinzugefügt und es unter Verwendung von Register_Settings wie gewohnt registriert. Eine Sache zu beachten: Wenn wir feststellen möchten, ob ein Benutzer das Kontrollkästchen überprüft hat oder nicht, verwenden wir die Funktion checked ().
Die Funktion checked () vergleicht einen Wert mit einem anderen Wert, wenn sie gleich sind, dann spiegelt sie ein überprüftes Attribut an, ansonsten nichts.
So sieht unsere Einstellungsseite jetzt aus.
Die Funktion "Register_Setting" enthält ein drittes Argument, das ein Rückruf ist. Dieser Rückruf wird abgefeuert, bevor die Einstellungen in die Datenbank gespeichert werden. Wir können diesen Rückruf verwenden, um Uploads zu verarbeiten.
Hier ist Code zum Hochladen eines Logos auf unserer Einstellungsseite.
function display_twitter_element() { ?> <span><span><span><input</span> type<span>="text"</span> name<span>="twitter_url"</span> id<span>="twitter_url"</span> value<span>="<span><?php echo get_option('twitter_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_facebook_element() </span></span><span><span>{ </span></span><span> <span>?></span> </span> <span><span><span><input</span> type<span>="text"</span> name<span>="facebook_url"</span> id<span>="facebook_url"</span> value<span>="<span><?php echo get_option('facebook_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_layout_element() </span></span><span><span>{ </span></span><span> <span>?></span> </span> <span><span><span><input</span> type<span>="checkbox"</span> name<span>="theme_layout"</span> value<span>="1"</span> <span><span><?php checked(1, get_option('theme_layout'), true); ?></span></span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_theme_panel_fields() </span></span><span><span>{ </span></span><span> <span>add_settings_section("section", "All Settings", null, "theme-options"); </span></span><span> </span><span> <span>add_settings_field("twitter_url", "Twitter Profile Url", "display_twitter_element", "theme-options", "section"); </span></span><span> <span>add_settings_field("facebook_url", "Facebook Profile Url", "display_facebook_element", "theme-options", "section"); </span></span><span> <span>add_settings_field("theme_layout", "Do you want the layout to be responsive?", "display_layout_element", "theme-options", "section"); </span></span><span> </span><span> <span>register_setting("section", "twitter_url"); </span></span><span> <span>register_setting("section", "facebook_url"); </span></span><span> <span>register_setting("section", "theme_layout"); </span></span><span><span>} </span></span><span> </span><span><span>add_action("admin_init", "display_theme_panel_fields");</span></span>
Hier verwenden wir WP_handle_Upload, um die Bilddatei zu speichern und ihre URL abzurufen und als Option zu speichern.
So sieht unsere Einstellungsseite jetzt aus, sie wird gut!
Ein Thema muss die Einstellungswerte am vorderen Ende abrufen. Die Einstellungs -API speichert die Werte intern mit der Options -API. Daher können Sie die Werte mit der Funktion get_option () abrufen.
Es ist ganz einfach, hier ist der Code.
<span>function theme_settings_page(){} </span> <span>function add_theme_menu_item() </span><span>{ </span> <span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99); </span><span>} </span> <span>add_action("admin_menu", "add_theme_menu_item");</span>
In diesem Artikel haben wir gesehen, wie wir mit der API der Einstellungen einfach eine Seite mit Themeneinstellungen erstellen können. Wir haben einen Text-, Datei- und Kontrollkästchen -Eingangsfelder erstellt, um Eingaben in verschiedenen Datenformaten zu erhalten. Machen Sie weiter und versuchen Sie, die Seite zu erweitern und weitere Formularsteuerungen hinzuzufügen.
Wie kann ich eine Einstellung in WordPress registrieren? Diese Funktion dauert drei Parameter: die Optionsgruppe, den Optionsnamen und ein Array von Argumenten, die die Einstellung definieren. Die Optionsgruppe sollte mit der in der Funktion "Einstellungen" verwendeten Gruppe () übereinstimmen, und der Optionsname ist der Name der Option, die in der Datenbank gespeichert werden soll.
Um ein Formularfeld für Ihre Einstellung zu erstellen, können Sie die Funktion add_Setings_field () verwenden. Diese Funktion enthält mehrere Parameter, einschließlich der ID des Feldes, des Titels des Feld Für das Feld.
Um Ihre Einstellungen in WordPress zu speichern, müssen Sie das Formular auf Ihrer Einstellungsseite einreichen. Wenn das Formular eingereicht wird, speichert WordPress die Einstellungen automatisch mit der Funktion "Register_Seting (). Sie können auch die Funktion update_option () verwenden, um eine Einstellung manuell zu speichern.
Wie kann ich meine Einstellungen in WordPress löschen? kann die Funktion delete_option () verwenden. Diese Funktion nennt den Namen der Option als Parameter und löscht die Option aus der Datenbank. Seien Sie vorsichtig, wenn Sie diese Funktion verwenden, da sie die Option dauerhaft löscht. von WordPress. Beispielsweise können Sie die WP_DEBUG -Konstante verwenden, um den Debug -Modus zu aktivieren und PHP -Fehler, Hinweise und Warnungen anzuzeigen. Sie können auch die Funktion var_dump () verwenden, um den Wert von Variablen auszugeben und zu sehen, welche Daten verarbeitet werden.
Das obige ist der detaillierte Inhalt vonErstellen Sie eine WP -Themeneinstellungsseite mit der Einstellungs -API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!