Ich lerne etwas über Plugins und Shortcodes. Ich habe festgestellt, dass beim Aktivieren meines Plugins der Code auf alle meine Seiten geladen wird - auch auf Seiten, die keinen Shortcode haben. (Ich meine nicht Inhalt gegen Admin-Seiten). Auf einigen Inhaltsseiten verwende ich einen bestimmten Shortcode und auf anderen Inhaltsseiten nicht - aber auf jeden Fall wird der Code des Plugins geladen. Wie mache ich es so, dass das Plugin nur auf Seiten enthalten ist, auf denen der Shortcode verwendet wird?
Mehr Details:
Nehmen wir an, ich habe ein Plugin, das eine Lightbox erstellt. Ich aktiviere das Plugin. Auf meiner Seite "Coole Bilder" verwende ich einen Shortcode, um eine Lightbox zu erstellen. Wenn ich auf meiner Seite "Info" die Option "Quelltext anzeigen" auswähle, auf der der Lightbox-Shortcode nicht verwendet wird, wird angezeigt, dass der Code des Lightbox-Plugins geladen wurde. Meine Seiten werden schneller geladen, wenn ich mein Plugin schreibe, sodass der Code nur auf den Seiten geladen wird, auf denen er benötigt wird. Ist das möglich? Ansonsten werde ich unnötigerweise Code für viele Plugins auf Seiten laden lassen. Irgendwelche Ideen?
quelle
Antworten:
Mit WP v3.3 konnten wir wp_enqueue_script in der Mitte einer Seite ausführen. Ticket 9346
Dies hat es viel einfacher gemacht, Ihren JS mit besserer Granularität einzubinden (zumindest bei Verwendung von Shortcodes). Hier ist die Abfrage nur enthalten, wenn unser Shortcode ausgelöst wird.
quelle
Überprüfen Sie die Benutzeroberflächenvariablen für Administratoren
Ein Menüpunkt ist ein Sonderfall: Kommentare, wie sie mit dem eingetragen werden
add_WHATEVER_(submenu)page()
API .Diese sind nicht konsistent und in wp core fest codiert. Beachten Sie, dass nicht alle auf allen Seiten festgelegt sind.
Haken Sie sich in seitenbezogene Administrations-UI-Haken ein
Dann gibt es noch spezielle, seitenbezogene Hooks, die du dir ansehen kannst
admin-footer.php
undadmin-header.php
:Einige Beispiele aus der Praxis: Post Screen
Dann gibt es noch das
$hook_suffix
, mit dem Sie vergleichen können, um Skripte in die Warteschlange zu stellen, direkt wenn Sie Ihre Aktion einbinden:Aktualisieren
Um einen einfacheren (1-Klick) Zugriff auf diese Daten / Informationen zu erhalten, haben wir ein frei verfügbares, entwicklerfreundliches Plugin namens "(WCM) Current Admin Info" erstellt , das auf GitHub verfügbar ist . Das Plugin kann in naher Zukunft auch im offiziellen wp.org-Repository gefunden werden .
Screenshots
So geben Sie eine Vorschau auf das, was Sie mit diesem Plugin erhalten:
quelle
Könnte etwas in der Art von (in der header.php) machen:
Überprüft, ob es sich beim aktuellen Ladevorgang um eine Seite oder einen Beitrag handelt, greift nach Inhalten und sucht nach Ihrem Shortcode. Wenn es gefunden wird, führt es Ihre Funktion aus.
quelle
get_shortcode_regex()
?Am einfachsten ist es, nur nach dem Shortcode zu suchen.
quelle
get_shortcode_regex()
es.@kaiser merkte
get_shortcode_regex()
mehrmals in diesem Thread, ich dachte nur, ich gebe ein Beispiel, wie man es benutzt. Der Code ist so ziemlich derget_shortcode_regex()
WordPress-Code-Referenzseite entnommen .quelle
Ich habe diese Lösung gefunden :
quelle