So rufen Sie eine Plugin-Funktion aus index.php auf

7

Ich habe in meinem Plugin eine Funktion mypluginmit dem Namen erstellt foo, wie man sie vom Frontend aus aufruft.

 e.g. index.php?
Yoga
quelle
2
hmmm eine 25% Akzeptanzrate ist ziemlich niedrig
Tom J Nowell
1
Das Aufrufen einer PHP-Funktion in einer PHP-Datei ist eine PHP- Frage, keine WordPress- Frage.
Chip Bennett
1
Es ist buchstäblich eine Frage über WordPress-Plugins @ChipBennett ....
Nick

Antworten:

12

So wie Sie es auch tun würden:

foo();

Aktive Plugins werden vor den Themendateien geladen

Vielleicht möchten Sie überprüfen, ob Ihr Plugin aktiviert ist 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";
}

fooBeachten Sie auch, dass es sich um einen sehr generischen Funktionsnamen handelt. Vielleicht hat das Plugin "omgfoo" auch eine fooFunktion. Stellen Sie Ihrer Funktion also ein Präfix / einen Namespace für etwas Einzigartiges

Möglicherweise möchten Sie Aktionen und Filter verwenden, da diese sicherer und besser sind. Sie können dies hier weiter nachlesen

Tom J Nowell
quelle
5

Das tust du nicht. Ein Theme sollte nur in einer sehr kontrollierten Umgebung auf ein Plugin angewiesen sein. 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()zum Ändern oder Hinzufügen neuer Inhalte. Auf diese Weise funktioniert das Thema weiterhin, wenn das Plugin deaktiviert wurde und Sie es nicht verwenden müssen function_exists().

Fuxia
quelle
2

Aktive Plugins werden geladen (wie technisch gesehen - ihre Dateien werden beim Laden von WordPress von PHP eingeschlossen und verarbeitet), wenn Themenvorlagen ausgeführt werden.

Ihre Funktion sollte also verfügbar sein und kann wie jede andere Funktion aufgerufen werden:

<?php foo(); ?>

zum Beispiel.

Selten
quelle