✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Fügen Sie eine benutzerdefinierte Permalink-Einstellung für Ihren benutzerdefinierten Beitragstyp in WordPress hinzu

8

Dies ist ein Tutorial zum Hinzufügen einer benutzerdefinierten Einstellung zur WordPress-Admin-Seite „Einstellungen > Permalinks”, um den Slug für Ihren benutzerdefinierten Beitragstyp zu definieren. Wenn Sie ein Design oder Plugin für andere entwickeln, das über einen integrierten benutzerdefinierten Beitragstyp verfügt, wird das Hinzufügen dieser Einstellung vom Benutzer geschätzt, da er es ihm ermöglicht, die URL-Struktur des benutzerdefinierten Beitragstyps festzulegen.

Ich werde nicht im Detail darauf eingehen, wie man einen benutzerdefinierten Beitragstyp hinzufügt; Wenn Sie sich nicht sicher sind, empfehle ich Ihnen, einen Blick darauf zu werfen, wie Sie einen benutzerdefinierten Beitragstyp hinzufügen.

Angenommen, Sie haben einen Code zum Registrieren Ihres benutzerdefinierten Beitragstyps wie diesen:

Der Teil, der uns interessiert, ist das rewriteArgument. Hier definieren wir, welchen Slug der Beitragstyp vor all seinen Beiträgen erhält. Ihr Code zum Registrieren eines benutzerdefinierten Beitragstyps kann etwas anders sein, z. B. ohne „ with_front“, aber was uns hier interessiert, ist „ slug“:

Mit diesem Code codieren Sie praktisch fest, was der Permalink-Slug der Posts sein wird. Ein Beitragstyp für Referenzen kann für viele Arten von Inhalten und Themenbenutzern verwendet werden; B. Projekt, Portfolio, Kundenreferenzen, Firmenreferenzen usw. Um Ihr Theme flexibel zu gestalten, möchten Sie vielleicht dem Theme-Benutzer erlauben, den Slug des Beitragstyps selbst zu bestimmen.

Schauen wir uns also an, wie das geht!

Feld hinzufügen und speichern

Die Verwendung der Einstellungs-API von WordPress vereinfacht dies etwas für uns. Wir müssen lediglich ein Einstellungsfeld hinzufügen und WordPress mitteilen, auf welcher Admin-Seite es angezeigt werden soll – in unserem Fall auf der Einstellungsseite für Permalinks. Denken Sie daran, dass wir eine Funktion schreiben müssen, die den Wert auch tatsächlich speichert, was wir am Ende tun werden.

Wir hängen unsere Funktion an den admin_initHaken und registrieren unsere Einstellung. Wenn wir eine Einstellung registrieren, definieren wir, welche Funktion sie ausführen soll, um die Einstellung auszugeben:

add_action('admin_init', function() { add_settings_field('mytheme_reference_slug', __('References base', 'txtdomain'), 'mytest_reference_slug_output', 'permalink', 'optional'); });

Das Setzen von Argument vier von [add_settings_field](https://developer.wordpress.org/reference/functions/add_settings_field/)()to 'permalink'weist WordPress an, die Einstellung zur Seite Permalinks-Einstellungen hinzuzufügen. Argument Nummer drei ist die Funktion, die WordPress bei der Ausgabe der Einstellung ausführen soll – eine Funktion, die wir als nächstes definieren (außerhalb der Hooked-Funktion):

In dieser Funktion geben wir einfach einen einfachen Formulartext aus <input>. Für sein valueAttribut holen wir uns den Wert der Einstellung mit [get_option](https://developer.wordpress.org/reference/functions/get_option/)(). Das placeholderAttribut ist optional, aber es empfiehlt sich, Ihre Standard-Slug-Basis einzugeben, damit der Benutzer des Themas weiß, ob er seinen Wert ändern möchte oder nicht.

Wenn Sie Ihren Code speichern und jetzt zu Ihrer WordPress-Permalinks-Seite gehen, sollten Sie Ihr Feld ganz am Ende sehen:

Fügen Sie eine benutzerdefinierte Permalink-Einstellung für Ihren benutzerdefinierten Beitragstyp in WordPress hinzu

Im Moment speichert die Einstellung ihren Wert nicht, das ist der nächste Schritt.

Wir müssen eine weitere Funktion hinzufügen, admin_initdie überprüft, ob unsere Einstellung in Form einer Permalink-Struktur übermittelt wurde oder nicht. Und wenn ja, sollte es mit gespeichert werden [update_option](https://developer.wordpress.org/reference/functions/update_option/)().

add_action('admin_init', function() { if (isset($_POST['permalink_structure'])) { update_option('mytheme_reference_slug', trim($_POST['mytheme_reference_slug'])); } });

Beim Speichern der Permalink-Einstellungen wird ein Formular gesendet, sodass wir die Werte über die $_POSTglobale PHP-Variable abrufen können. Die übermittelten Werte aus dem Formular werden als Array mit den Namensattributen der Eingabe als Schlüssel gespeichert. In unserem Fall setzen wir ein Namensattribut ‘ mytheme_reference_slug‘ auf unsere Eingabe, damit wir mit auf den übermittelten Wert zugreifen können $_POST['mytheme_reference_slug'].

Jetzt sollte die Einstellung auf der Seite „Permalink-Einstellungen” vollständig funktionieren. Der letzte Teil besteht darin, den Wert dieser Einstellung unserem benutzerdefinierten Beitragstyp zuzuweisen.

Unseren benutzerdefinierten Beitragstyp verwenden, um unsere Einstellung zu verwenden

Damit unser benutzerdefinierter Beitragstyp den benutzerdefinierten Wert unserer Einstellung verwendet, kehren wir zum register_post_type()Funktionsaufruf zurück und ändern das rewriteArgument in etwa so:

Alles, was wir hier tun, ist den Wert unserer neuen Option abzurufen. Wenn es leer ist 'reference', wird der Standardwert () verwendet.

Und das ist es! Jetzt verwendet Ihr benutzerdefinierter Beitragstyp die Slug-Basis, die auf der Seite Permalinks-Einstellungen festgelegt ist. Auf die gleiche Weise können Sie weitere Einstellungen hinzufügen, beispielsweise für benutzerdefinierte Taxonomien.

Der vollständige Code

Jetzt alle zusammen.

Aufnahmequelle: awhitepixel.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen