Ich habe in meinem Plugin eine Funktion myplugin
mit dem Namen foo
angelegt, wie kann ich sie vom Frontend aus aufrufen?
e.g. index.php?
So wie bei jedem anderen:
foo();
Aktive Plugins werden vor den Designdateien geladen
Vielleicht möchten Sie überprüfen, ob Ihr Plugin aktiviert und die Funktion verfügbar ist, damit die Dinge nicht birnenförmig werden, wenn Sie vergessen, es zu aktivieren, wie zum Beispiel:
if(function_exists('foo')){
foo();
} else {
echo "oh dear you haven't activated/installed 'myplugin', go do that before the 'foo' feature is available";
}
Denken Sie auch daran, dass foo
ein sehr allgemeiner Funktionsname ist. Vielleicht hat das "omgfoo" -Plugin auch eine foo
-Funktion. So Präfix/Namespace Ihrer Funktion etwas Einzigartiges
Sie werden eventuell Aktionen und Filter verwenden wollen, da diese sicherer und besser sind. Sie können dies hier weiter nachlesen.
Das tust du nicht. Ein Theme sollte sich nur in einer sehr kontrollierten Umgebung auf ein Plugin verlassen. Verwenden Sie stattdessen Aktionen und Filter .
In Ihrem Thema könnten Sie also Folgendes verwenden:
do_action( 'before_header' );
… oder …
$bg_options = array (
'wp-head-callback' => 't5_custom_background_frontend',
'default-color' => 'f0f0f0',
'default-image' => '',
);
$bg_options = apply_filters( 't5_theme_bg_options', $bg_options );
add_theme_support( 'custom-background', $bg_options );
add_action( 'login_head', $bg_options['wp-head-callback'] );
In Ihrem Plugin verwenden Sie add_action()
und add_filter()
, um Inhalte zu ändern oder neue hinzuzufügen. Auf diese Weise funktioniert das Thema auch dann, wenn das Plugin deaktiviert wurde und Sie function_exists()
nicht verwenden müssen.
Aktive Plugins werden (wie technisch gesehen - ihre Dateien sind enthalten und werden von PHP während des Ladens von WordPress verarbeitet) zu der Zeit geladen, zu der die Designvorlagen ausgeführt werden.
Ihre Funktion sollte also verfügbar sein und kann wie jede andere Funktion aufgerufen werden:
<?php foo(); ?>
zum Beispiel.