Как вызвать функцию плагина из index.php

18 нояб. 2012 г., 17:02:12
Просмотры: 36.9K
Голосов: 9

Я создал функцию с именем foo в моем плагине myplugin, как мне вызвать ее из фронтенда?

например из index.php?
3
Комментарии

хмм, уровень принятия в 25% довольно низкий

Tom J Nowell Tom J Nowell
18 нояб. 2012 г. 22:24:34

Как вызвать PHP-функцию внутри PHP-файла — это вопрос по PHP, а не по WordPress.

Chip Bennett Chip Bennett
19 нояб. 2012 г. 13:57:21

это буквально вопрос о плагинах WordPress @ChipBennett ....

nick nick
28 нояб. 2015 г. 02:38:51
Все ответы на вопрос 3
0
16

Точно так же, как и любой другой:

foo();

Активные плагины загружаются до файлов темы

Возможно, вам стоит проверить, что ваш плагин активирован и функция доступна, чтобы избежать проблем, если вы забудете его активировать, например:

if(function_exists('foo')){
    foo();
} else {
    echo "О нет, вы не активировали/установили 'myplugin', сделайте это, прежде чем функция 'foo' станет доступной";
}

Также учитывайте, что foo — это очень общее название функции. Например, плагин "omgfoo" тоже может иметь функцию foo. Поэтому используйте префикс или пространство имен для своей функции, чтобы сделать её уникальной.

В конечном итоге вам стоит использовать действия и фильтры, так как это безопаснее и считается лучшей практикой. Подробнее об этом можно прочитать здесь

18 нояб. 2012 г. 17:07:03
0

Так делать не стоит. Тема не должна зависеть от плагина, за исключением строго контролируемых ситуаций. Вместо этого используйте действия и фильтры.

В своей теме вы можете использовать:

do_action( 'before_header' );

… или …

$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'] );

В вашем плагине используйте add_action() и add_filter() для изменения или добавления нового содержимого. Таким образом, тема продолжит работать, даже если плагин деактивирован, и вам не придётся использовать проверку function_exists().

18 нояб. 2012 г. 23:59:52
0

Активные плагины загружаются (технически — их файлы подключаются и обрабатываются PHP во время загрузки WordPress) к моменту выполнения шаблонов темы.

Таким образом, ваша функция должна быть доступна и может быть вызвана как любая другая функция:

<?php foo(); ?>

например.

18 нояб. 2012 г. 17:05:38