Anpassungsprogramm für WordPress-Theme Methodik für Abschnitte, Einstellungen und Steuerelemente - Teil 2

Im letzten Artikel haben wir eine einfache Methode für alles definiert, was erforderlich ist, um einen neuen Abschnitt, Einstellungen und Steuerelemente im Designanpassungsprogramm einzurichten.

In diesem Artikel werden wir mehr davon tun; Wir werden jedoch neue Einstellungen und Steuerelemente in den vorhandenen Abschnitt einfügen. Wir werden jedoch verschiedene Optionen wie Optionsfelder, Auswahlfelder und Eingabefelder betrachten.

Also, lass uns fortfahren.


Eine Erinnerung an unsere Methodik

Wir erinnern uns an den letzten Artikel, dass unsere Methodik wie folgt ist:

  1. Einen Abschnitt definieren
  2. Fügen Sie dem Abschnitt eine Einstellung hinzu
  3. Fügen Sie ein Steuerelement für die Einstellung hinzu
  4. Schreiben Sie das notwendige JavaScript
  5. Machen Sie die notwendigen Anrufe an get_theme_mod

Wir werden dies für jedes der neuen Steuerelemente in den folgenden Einstellungen und Steuerelementen durchführen. Bei Bedarf sprechen wir nach Bedarf über Datenvalidierung und -bereinigung.

Sobald wir das Ende des Artikels erreicht haben, wird eine Version des Codes dieses Artikels auch von GitHub heruntergeladen.


Ändern Sie das Farbschema

Fügen wir dem Design-Customizer eine neue Option hinzu, mit der der Benutzer zwischen Farbschemas wählen kann - eines ist das Standard-Schwarz-Weiß-Farbschema, das andere ist das Umgekehrte.

1. Fügen Sie dem Abschnitt eine Einstellung hinzu

Dazu müssen wir zunächst eine Einstellung und ein Steuerelement hinzufügen tcx_register_theme_customizer Funktion. Fügen Sie die folgenden zwei Funktionsaufrufe unten hinzu:

$ wp_customize-> add_setting ('tcx_color_scheme', array ('default' => 'normal', 'transport' => 'postMessage')); $ wp_customize-> add_control ('tcx_color_scheme', array ('section' => 'tcx_display_options', 'label' => 'Farbschema', 'type' => 'radio', 'options' => array ('normal' => 'Normal', 'Inverse' => 'Inverse')));

Beachten Sie, dass wir eine neue Einstellung hinzufügen, die durch das Symbol identifiziert wurde tcx_color_scheme ID und wir verwenden offensichtlich die POST-Meldung Transportart.

Zweitens, beachten Sie, dass wir auch ein bereitgestellt haben Standard Wert, der auf festgelegt ist normal. Dieser Wert bringt uns zum add_control Anruf.

2. Fügen Sie ein Steuerelement für die Einstellung hinzu

Beachten Sie, dass wir es an den binden tcx_display_options dass wir im letzten Artikel definiert haben. Wir haben es das Etikett gegeben Farbschema denn das ist offensichtlich, was wir ändern, und wir setzen das Art der Kontrolle als a Radio Taste.

Dazu müssen wir eine Reihe von Auswahlmöglichkeiten übergeben, wobei der erste Schlüssel der Wert der Option ist und der zweite Wert die Beschriftung für das Optionsfeld ist.

Diese Deshalb ist der Standardwert für die add_setting Anruf ist auf eingestellt normal.

Jetzt sollten wir in der Lage sein, unsere Arbeit zu speichern, den Theme Customizer zu aktualisieren und dann die neue Option zu sehen.

Aber zu diesem Zeitpunkt wird es noch nicht viel bewirken.

3. Schreiben Sie das notwendige JavaScript

Jetzt müssen wir hüpfen js / theme-customizer.js und fügen Sie den folgenden Code-Block hinzu:

wp.customize ('tcx_color_scheme', function (value) value.bind (function (to) if ('inverse' === to) $ ('body') .css (background: '# 000', color: '#fff'); else $ ('body') .css (Hintergrund: '#fff', Farbe: '# 000');;);

Dies weist den Theme-Customizer an, das zu ändern KarosserieHintergrundfarbe und Schriftfarbe basierend auf der Einstellung der Optionsfelder.

Wenn Sie diesen Code implementieren, sollten Sie in der Lage sein, das Designanpassungsprogramm zu aktualisieren und die Änderungen zu sehen. Das Problem ist, dass die Werte nicht wirklich in der Datenbank gespeichert werden.

4. Machen Sie die erforderlichen Anrufe an get_theme_mod

Die letzte Sache, die wir implementieren müssen, um sicherzustellen, dass die Daten aus der Datenbank gelesen werden, um das Farbschema zu ändern, ist das Hinzufügen eines Stils Stil Block in der tcx_customizer_css Funktion:

 Hintergrund: # 000; Farbe: #fff;  Hintergrund: #fff; Farbe: # 000;  

Leicht genug zu verstehen, richtig? Es funktioniert genau so wie unser JavaScript-Code, nur dass das Design beim Laden der Seite gilt und nicht nur bei der Vorschau.


Ändern Sie die Schriftart

Jetzt setzen wir den Prozess fort, indem wir eine weitere Einstellung und ein anderes Steuerelement mit unserer Methodik einführen, sodass unsere Benutzer eine globale Schriftart für ihr Design auswählen können.

Dazu verwenden wir eine wählen Element mit einer Reihe von Optionen, aus denen der Benutzer die gewünschte Front auswählen kann.

An diesem Punkt sollte die Methodik sehr vertraut werden.

1. Fügen Sie dem Abschnitt eine Einstellung hinzu

Zuerst definieren wir eine Einstellung für die tcx_font das wir später im gesamten Code als Referenz verwenden werden:

$ wp_customize-> add_setting ('tcx_font', array ('default' => 'times', 'transport' => 'postMessage'));

Genau wie bei der vorherigen Einstellung werden wir bereitgestellt Standard Wert, den wir momentan definieren werden, wenn wir ein neues Steuerelement implementieren.

2. Fügen Sie ein Steuerelement für die Einstellung hinzu

Wie bereits erwähnt, werden wir den Benutzern die Möglichkeit geben, mit a eine Schriftart auszuwählen wählen Element. Dies ist der Funktionsweise von Optionsfeldern sehr ähnlich, da wir ein Array mit Schlüsseln und Werten bereitstellen, die die Schriftart definieren. jedoch die tatsächliche Art des Elements wird anders sein.

Fügen Sie dem folgenden Code hinzu tcx_register_theme_customizer Funktion:

$ wp_customize-> add_control ('tcx_font', array ('section' => 'tcx_display_options', 'label' => 'Theme Font', 'type' => 'select', 'Auswahlen' => array ('times') => 'Times New Roman', 'arial' => 'Arial', 'kurier' => 'Kurier neu')));

Dies wird ein einführen wählen Element in den Design-Customizer mit den folgenden drei Optionen für Schriftarten:

  1. Times New Roman
  2. Arial
  3. Kurier Neu

Nun müssen wir die Optionen für die Schriftarten so aufschreiben, dass sie die Schrift des Designs dynamisch ändern.

3. Schreiben Sie das notwendige JavaScript

Öffnen Sie dazu js / theme-customizer.js und fügen Sie dann den folgenden Code-Block hinzu. Beachten Sie, dass dies etwas komplizierter sein wird als das, was wir im JavaScript des Theme Customizer gewohnt sind.

Stellen Sie zunächst sicher, dass Sie haben var sFont Oben in der JavaScript-Datei direkt über dem ersten Aufruf von definiert wp.anpassen.

Fügen Sie anschließend den folgenden Code-Block hinzu:

wp.customize ('tcx_font', function (value) value.bind (function (to) switch (to.toString (). toLowerCase ()) case 'times': sFont = 'Times New Roman'; break; case 'arial': sFont = 'Arial'; break; case 'kurier': sFont = 'Courier New, Courier'; break; case 'helvetica': sFont = 'Helvetica'; break; default: sFont = 'Times New Roman '; break; $ (' body ') .css (fontFamily: sFont);););

Obwohl die Funktion etwas länger ist, ist sie eigentlich ganz einfach: Wir nehmen den eingehenden Wert und verwenden dann ein Schaltergehäuse um zu bestimmen, welche Schriftart ausgewählt wurde. Basierend auf dem ausgewählten Wert weisen wir ihn dem zu sFont Variable.

Und wenn Sie aus defensiven Codierungsgründen nicht definiert sind oder während des Transports etwas schief geht, werden wir uns dem Standard widmen Times New Roman.

Zum Schluss gilt dann der Wert von sFont zum Schriftfamilie Attribut des Karosserie Element mit jQuery css Funktion.

4. Machen Sie die notwendigen Anrufe an get_theme_mod

Nun müssen wir unsere Methodik entsprechend aktualisieren tcx_customizer_css Funktion, damit die Schrift korrekt auf den Körper angewendet wird.

Dies ist eigentlich ein einfacher Aufruf:

Schriftfamilie: 

Erledigt.


Passen Sie die Copyright-Mitteilung an

Schließlich erlauben wir dem Benutzer, die Copyright-Meldung anzupassen, die unten in der Fußzeilenvorlage angezeigt wird.

Lassen Sie uns jetzt die Vorlage anpassen. Derzeit sollte es so aussehen:

© Alle Rechte vorbehalten

Aber lass es uns so aktualisieren, dass es so aussieht:

©

Obwohl das wird ein bisschen Vor unserer Methodik ist es notwendig, dass wir definieren, damit der Theme-Customizer das Neue nutzen kann Spanne Element, und so können wir die Copyright-Meldung anzeigen, wie vom Benutzer definiert.

1. Fügen Sie dem Abschnitt eine Einstellung hinzu

Zuerst werden wir unsere endgültige Einstellung vorstellen:

$ wp_customize-> add_setting ('tcx_footer_copyright_text', array ('default' => 'All Rights Reserved', 'sanitize_callback' => 'tcx_sanitize_copyright', 'transport' => 'postMessage'));

Beachten Sie jedoch, es gibt eine Sache, die sich von den vorherigen Eingaben unterscheidet. Dies ist der Schlüssel und Wert "sanitize_callback". Dadurch wird eine Funktion definiert, die ausgelöst wird, wenn die Daten in eine Datenbank serialisiert werden. Schließlich machen wir keine illegalen Inhalte, die in die Datenbank gelangen.

Dazu definieren wir eine aufgerufene Funktion tcx_sanitize_copyright Dadurch werden alle Tags, Schrägstriche und andere illegale Tags entfernt, die in die Datenbank serialisiert werden sollen:

Funktion tcx_sanitize_copyright ($ input) return strip_tags (striplashes ($ input)); 

Wir geben einfach den Wert der bereinigten Eingabe zurück.

2. Fügen Sie ein Steuerelement für die Einstellung hinzu

Als nächstes ist es Zeit, das tatsächliche Steuerelement für die Einstellung hinzuzufügen.

$ wp_customize-> add_control ('tcx_footer_copyright_text', array ('section' => 'tcx_display_options', 'label' => 'Copyright-Meldung', 'type' => 'text'));

Auch hier binden wir es an die tcx_display_options Abschnitt und wir geben ihm das Label "Copyright Message", damit die Benutzer die Tabelle lesen können. Zum Schluss haben wir dies als a definiert Text Eingang.

Natürlich wissen Sie zu diesem Zeitpunkt, dass wir mit dem Steuerelement erst dann etwas anfangen können, wenn wir es mit dem JavaScript verbunden haben.

3. Schreiben Sie das notwendige JavaScript

Das JavaScript dafür ist sehr einfach, besonders wenn Sie das gegeben haben Spanne Eine eindeutige ID wie oben beschrieben.

wp.customize ('tcx_footer_copyright_text', function (value) value.bind (function (to) $ ('# copyright-message') .text (to);););

Im Wesentlichen nimmt es den Wert von zu Argument und setzt es als Wert der SpanneText.

4. Machen Sie die notwendigen Anrufe an get_theme_mod

Und schließlich, obwohl wir es bereits in der Vorlage gemacht haben, werden wir den Code hier überprüfen:

©

Beachten Sie, dass wir den Wert von lesen tcx_footer_copyright_text und dann drucken wir diesen Wert auf dem Bildschirm aus.


Als nächstes…

Und jetzt ist es soweit! Wir haben uns einige grundlegende Steuerelemente angesehen, die dem Benutzer eine beträchtliche Kontrolle über das Aussehen und Verhalten dieses zwar sehr grundlegenden Themas geben, und wir haben darüber nachgedacht, wie die Datenbereinigung zusammen mit dem Serialisierungsprozess eingeführt werden kann.

Das einzige, was noch zu behandeln ist, sind einige der fortschrittlicheren, integrierten Steuerelemente, die WordPress bietet. Im nächsten Artikel werden wir uns einige dieser Features und deren Implementierung ansehen.

!