15 nützliche WordPress-Funktionen, die alle Entwickler kennen sollten
WordPress bietet viele großartige Funktionen für uns Entwickler. Wir können Postlisten aus dem Nichts herausfiltern, fast alles an ihnen manipulieren, jeden beliebigen Benutzer ergreifen und seine Social-Media-Verbindungen im Handumdrehen anzeigen.
Es gibt jedoch einige Funktionen, die aus unbekannten Gründen übersehen zu werden scheinen. Ich programmiere jetzt seit etwa 8 Jahren mit WordPress und gelegentlich finde ich immer noch etwas Neues! Werfen wir einen Blick auf einige meiner Lieblings übersehene Funktionen und lernen, sie auf dem Weg zu nutzen.
Antispambot ()
Ich ziehe normalerweise ein paar Augenbrauen hoch, es scheint eine der am besten versteckten Funktionen in der Codebase zu sein.
ersetzt Zeichen durch HTML-Entitäten. Dies ist eine Möglichkeit Maske E-Mail-Adressen von bösen Schabern.Antispambot ()
$ email = '[email protected]'; Echo 'Sie können mich unter kontaktieren'. Antispambot ($ email). ' Jederzeit'.
Dies ist zwar ein nützlicher Leckerbissen, aber es ist auch ein Beispiel, warum einige Leute WordPress kritisieren - dies ist eine schrecklich benannte Funktion. Beim Lesen des Funktionsnamens haben Sie keine Ahnung, was er tut.
human_time_diff ()
Als ich vor etwa einem Jahr zum ersten Mal von dieser Funktion erfuhr, dachte ich, dass es sich um eine kürzlich hinzugefügte Erweiterung handelt, die ich in einem Changelog übersehen habe. Nicht ganz…
Diese Funktion, die die Differenz zwischen zwei Zeitstempeln ausgibt, ist seit Version 1.5 (das ist der 17. Februar 2018!)..
Der folgende große Ausschnitt, den ich aus dem Kodex entlehnt habe, zeigt, wie lange ein aktueller Beitrag veröffentlicht wurde. Es verwendet die Veröffentlichungsdatum des Beitrags als erstes Argument und das aktuelles Datum als zweites.
echo 'Dieser Beitrag wurde veröffentlicht'. human_time_diff (get_the_time ('U'), aktuelle_zeit ('timestamp')). 'vor';
get_post_meta ()
Tragen Sie sich bitte mit mir in Verbindung, ich weiß, dass dies eine häufig verwendete Funktion ist, aber wie es funktioniert, ist nicht so allgemein bekannt. Zunächst einmal können Sie den zweiten und den dritten Parameter weglassen Ziehen Sie alle Metadaten für einen Beitrag.
$ all_meta = get_post_meta (14);
Selbst wenn Sie nur die Daten für einen einzelnen Schlüssel abrufen, wird trotzdem alle Postmeta-Funktion abgerufen.
Der Grund ist eigentlich ziemlich logisch. Metadaten werden an mehreren Stellen verwendet. Ob
Abfragen der Datenbank bei jeder Verwendung führen zu viel Abfragen. Wenn Sie Metadaten abrufen, werden sie alle zwischengespeichert und die zwischengespeicherten Werte für alle nachfolgenden Metadatenabrufe verwendet.get_post_meta ()
wp_upload_bits ()
Diese Funktion ist geradlinig Datei-Upload-Funktion. Die Datei wird zwar nicht in den Upload-Ordner verschoben und nicht zum Medienbereich von WordPress hinzugefügt. Sie ist jedoch äußerst praktisch und Sie können den Rest jederzeit mit dem Ordner tun
Funktion.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['name']), null, file_get_contents ($ file ['tmp_name']));
Hierfür gibt es einige Erklärungen: Der erste Parameter ist der Dateiname. Der zweite Wert wird abgeschrieben und sollte daher auf null gesetzt werden (bei WordPress-Konsistenz). Der dritte Parameter ist der tatsächliche Inhalt der Datei.
get_post_field ()
In der Vergangenheit habe ich einige Beispiele gesehen, in denen jemand eine Schleife geschrieben hat, um die Anzahl der Kommentare für einen Beitrag zu ermitteln, oder eine dedizierte Datenbankabfrage dafür geschrieben. Sie brauchen sie nicht, was Sie brauchen, ist
. Diese Funktion Ruft den Wert eines einzelnen Feldes für einen einzelnen Beitrag ab in der Datenbank Lassen Sie uns einen Kommentar zählen!get_post_field ()
Dieser Beitrag hat Bemerkungen.
wpautop ()
Diese Funktion ist etwas ins Rampenlicht getreten, aber sie ist noch relativ unbekannt. Es ist dem nativen PHP ähnlich nl2br
aber anstatt neue Linien zu schaffen, es packt Ihren Inhalt in Absätze.
Dies ist nützlich, wenn Sie ein Textfeld haben und sicherstellen möchten, dass Benutzer, die Absätze mit doppelten Zeilenumbrüchen erstellen, auch im Frontend sichtbar bleiben.
Was sagen unsere Benutzer?
wp_is_mobile ()
Diese passend benannte Funktion erkennt, wenn sich ein Benutzer auf einem mobilen Gerät befindet, und ermöglicht Ihnen die entsprechende Anzeige von Inhalten. Da es sich um ein bedingtes Tag handelt, gibt es je nach Szenario true oder false zurück.
Besuchen Sie unsere Website auf Ihrem Desktop, um die Benutzererfahrung zu verbessern
wp_redirect ()
Das letzte Beispiel zeigt eine weitere nette Funktion:
. Dies sollte anstelle von PHP native verwendet werden wp_redirect ()
Header()
Funktion. Die WordPress-Umleitungsfunktion ermöglicht es Ihnen Legen Sie eine URL fest, zu der weitergeleitet werden soll, und legen Sie außerdem einen Statuscode fest, Auch für permanente Weiterleitungen geeignet.
// Für eine URL, die nicht mehr verwendet wird, wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
Ich wette, dass diese Funktion zum Teil auf die Beliebtheit des WP-PageNavi-Plugins zurückzuführen ist. Standardmäßig WordPress Zeigt vorherige / nächste Links am Ende Ihrer Beitragsliste an. WP-PageNavi ersetzt das durch Seitennummern.
Dies kann tatsächlich mit ein wenig Arbeit mit dem erledigt werden
Funktionen. Da es einige Parameter gibt, empfehle ich einen Blick in die Dokumentation.paginate_links ()
Das folgende Beispiel aus dem Codex zeigt, wie Sie es zu einer Standardschleife hinzufügen können, aber das Hinzufügen zu benutzerdefinierten Schleifen ist keine große Dehnung.
global $ wp_query; $ big = 999999999; // brauche ein unwahrscheinlich ganzzahliges Echo paginate_links (array ('base' => str_replace ($ big,% #% ', esc_url (get_pagenum_link ($ big))),' format '=>'? paged =% #% ' , 'current' => max (1, get_query_var ('paged')), 'total' => $ wp_query-> max_num_pages));
wp_die ()
Diese Funktion ergänzt das PHP sterben()
Funktion. Der Unterschied ist, dass diese Funktion ein WordPress-formatiertes HTML anstelle eines einfachen Textes anzeigt. Sie können diese Funktion verwenden, um die Ausführung von PHP zu stoppen. Sie können die Nachricht, den Titel und weitere anzuzeigende Argumente hinzufügen, zum Beispiel:
wp_die ("Ups, Sie haben keinen Zugriff auf", "Permission Denied");
has_block ()
In Version 5.0 wurde in WordPress ein blockbasierter Editor mit dem Codenamen Gutenberg eingeführt. Diese Funktion ermittelt, ob der Inhalt einen Gutenberg enthält, ganz ähnlich wie beim has_shortcode ()
Funktion. Es wird wiederkommen wahr
wenn der Inhalt einen Block enthält, oder falsch
wenn es nicht.
wp_set_script_translations ()
Da viele Teile der WordPress-Benutzeroberfläche zu JavaScript wechseln werden, ist eine bequeme Möglichkeit erforderlich, um übersetzbare Texte in JavaScript zu registrieren, die WordPress analysieren und verstehen kann. Verwenden Sie diese Funktion, um übersetzte Zeichenfolgen für Ihre Skripts festzulegen. Unten ist ein Beispiel:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
Eine weitere wichtige Funktion in WordPress 5.0. Mit dieser Funktion können Sie einen neuen Block im neuen WordPress-Editor registrieren. Ihr Block wird im neuen Editor angezeigt und eingefügt .
register_block_type ('my-plugin / new-block', array ('title' => 'Neuer Block', 'icon' => 'megaphone', 'category' => 'widgets', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
Mit dieser Funktion können Sie WordPress-REST-API-Endpunkte über PHP aufrufen. Ziemlich nützlich, wenn Sie eine Ausgabe von der REST-API abrufen müssen, um sie zu verarbeiten, die Sie auf der PHP-Seite und nicht auf der Browser-Seite (Front-End-Seite) weiterverarbeiten.
$ request = new WP_REST_Request ('GET', "/ wp / v2 / posts"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ response = rest_do_request ($ request); $ data = 200 === $ response-> get_status ()? $ response-> get_data (): [];
rest_preload_api_request ()
Wenn Sie eine JavaScript-starke Benutzeroberfläche in WordPress erstellen, müssen Sie in der Regel einen Satz anfänglicher Daten in die Seite laden. Mit dieser Funktion können Sie dies tun. Diese Funktion soll in Verbindung mit der verwendet werden array_reduce
, zum Beispiel.
// Laden Sie allgemeine Daten vor. $ preload_paths = array ('/', '/ wp / v2 / types? context = edit', '/ wp / v2 / taxonomies? per_page = -1 & context = edit', '/ wp / v2 / themes? status = active' ,); preload_data = array_reduce ($ preload_paths, 'rest_preload_api_request', array ()); wp_add_inline_script ('wp-api-fetch', sprintf ('wp.apiFetch.use (wp.apiFetch.createPreloadingMiddleware (% s));', wp_json_encode ($ preload_data)), 'after';
Fazit
Dies sind nur einige Funktionen, die dem Rest weniger bekannt zu sein scheinen. Ich entdecke alle zwei Monate eine neue großartige Funktion und ich bin sicher, dass mich meine Entwicklerfreunde dort noch weiter überraschen könnten.
Wenn Sie eine bevorzugte obskure Funktion oder eine Funktion haben, die nützlich ist, aber nicht verfügbar ist, teilen Sie uns dies bitte in den Kommentaren mit!