Ich habe ein Kalender-Plugin erstellt und möchte nun eine Ereignisliste in einer meiner Vorlagen anzeigen. Der Code, den ich jetzt verwende, ist dieser:
include_once(WP_CAL_PLUGIN_DIR.'eventcal.class.php');
$calendar = new EventCalendar();
$events = $calendar->getMultipleEvents('5');
(...)
<table>
<?php foreach($events as $event) : ?>
<tr>
<td><span><?php echo $calendar->formatEventTime($event->startTime,'dm'); ?></span></td>
<td><span><?php echo $calendar->formatEventTime($event->startTime,'time'); ?></span></td>
<td><?php echo $event->name; ?></td>
</tr>
<?php endforeach; ?>
</table>
Gibt es eine Möglichkeit, Funktionen in meinem Plugin aufzurufen, ohne das WP-Plugin einbinden und eine neue Klasseninstanz erstellen zu müssen?
Um Shortcode innerhalb einer Vorlage auszuführen, verwenden Sie die Funktion do_shortcode('[my-shortcode-handle]')
. Ihr Shortcode muss wie gewohnt registriert werden (siehe WordPress-Codex zur Shortcode-API), bevor Sie diese in der Vorlage verwenden können. Alle Attribute, Insider-Inhalte usw. sollten ebenfalls enthalten sein.
echo do_shortcode( '[my-shortcode foo="bar"]Shortcode content[/my-shortcode]' );
Denken Sie auch daran, die Rückgabe zu echoen (oder zumindest einer Variablen zuzuweisen), da sie nur die Ausgabe des Shortcodes zurückgibt.
Aus: http://codex.wordpress.org/Plugin_API
Hooks werden von WordPress bereitgestellt, damit sich Ihr Plugin in den Rest von WordPress einklinken kann; das heißt, Funktionen in Ihrem Plugin zu bestimmten Zeiten aufzurufen und dadurch Ihr Plugin in Gang zu setzen. Es gibt zwei Arten von Haken:
- Aktionen: Aktionen sind die Hooks, die der WordPress-Kern an bestimmten Punkten während der Ausführung startet oder wenn bestimmte Ereignisse eintreten. Ihr Plugin kann mithilfe der Aktions-API festlegen, dass an diesen Stellen eine oder mehrere seiner PHP-Funktionen ausgeführt werden.
-
Filter: Filter sind die Hooks, die WordPress startet, um Text verschiedener Typen zu ändern, bevor er zur Datenbank hinzugefügt oder an den Browserbildschirm gesendet wird. Ihr Plugin kann mithilfe der Filter-API festlegen, dass eine oder mehrere seiner PHP-Funktionen ausgeführt werden, um bestimmte Texttypen zu diesen Zeiten zu ändern.
Aktionen
Aktionen werden durch bestimmte Ereignisse ausgelöst, die in WordPress stattfinden, z. B. das Veröffentlichen eines Beitrags, das Ändern von Themen oder das Anzeigen einer Seite des Admin-Panels. Ihr Plugin kann auf das Ereignis reagieren, indem es eine PHP-Funktion ausführt, die eine oder mehrere der folgenden Aktionen ausführen kann:
* Modify database data
* Send an email message
* Modify what is displayed in the browser screen (admin or end-user)
Die grundlegenden Schritte, um dies zu erreichen (weiter unten ausführlicher beschrieben), sind:
- Erstellen Sie die PHP-Funktion, die ausgeführt werden soll, wenn das Ereignis eintritt, in Ihrer Plugin-Datei.
- Haken Sie die Aktion in WordPress an, indem Sie add_action() aufrufen
- Fügen Sie Ihre PHP-Funktion in eine Plugin-Datei ein und aktivieren Sie sie.
BEISPIEL:
function email_friends($post_ID) {
$friends="[email protected],[email protected]";
mail($friends, "sally's blog updated",
'I just put something on my blog: http://blog.example.com');
return $post_ID;
}
Verknüpfen Sie sich mit WordPress
Nachdem Ihre Funktion definiert ist, besteht der nächste Schritt darin, sie bei WordPress zu “haken” oder zu registrieren. Rufen Sie dazu add_action() im globalen Ausführungsbereich Ihrer Plugin-Datei auf:
add_action ( 'hook_name', 'your_function_name', [priority], [accepted_args] );
wo:
hook_name Der Name eines von WordPress bereitgestellten Action-Hooks, der angibt, mit welchem Ereignis Ihre Funktion verknüpft werden soll. your_function_name Der Name der Funktion, die nach dem durch Hook_Name angegebenen Ereignis ausgeführt werden soll. Dies kann eine Standard-PHP-Funktion, eine im WordPress-Kern vorhandene Funktion oder eine von Ihnen in der Plugin-Datei definierte Funktion sein (z. B. „email_friends“, wie oben definiert). Priorität Ein optionales ganzzahliges Argument, das verwendet werden kann, um die Reihenfolge anzugeben, in der die einer bestimmten Aktion zugeordneten Funktionen ausgeführt werden (Standard: 10). Niedrigere Zahlen entsprechen einer früheren Ausführung, und Funktionen mit derselben Priorität werden in der Reihenfolge ausgeführt, in der sie der Aktion hinzugefügt wurden. Accepted_args Ein optionales Integer-Argument, das definiert, wie viele Argumente Ihre Funktion akzeptieren kann (Standardwert 1). Dies ist nützlich, da einige Hooks mehr als ein Argument an Ihre Funktion übergeben können. Dieser Parameter ist neu in Version 1.5.1.
Im obigen Beispiel würden wir die folgende Zeile in die Plugin-Datei einfügen:
add_action ( 'publish_post', 'email_friends' );
Warum möchten Sie das WP-Plugin nicht einbinden und eine neue Klasseninstanz erstellen?
– bzlm
23. September 2010 um 18:45 Uhr
Ich dachte, es gäbe einen “WP-korrekteren” Weg, dies zu tun – etwas Ähnliches wie WP-Kurzcode.
– Stefan
23. September 2010 um 20:49 Uhr
Ja. In diesem Fall sollten Sie einen Shortcode registrieren. 🙂 codex.wordpress.org/Shortcode_API
– bzlm
23. September 2010 um 21:15 Uhr
Aber Shortcodes werden nur im Text verwendet und nicht im PHP-Template?
– Stefan
23. September 2010 um 21:58 Uhr
Wenn Sie den Shortcode in der Vorlage ausführen müssen, können Sie dies tun
do_shortcode('shortcode-handle')
.– John P. Bloch
24. September 2010 um 0:41 Uhr