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

Точно так же, как и любой другой:
foo();
Активные плагины загружаются до файлов темы
Возможно, вам стоит проверить, что ваш плагин активирован и функция доступна, чтобы избежать проблем, если вы забудете его активировать, например:
if(function_exists('foo')){
foo();
} else {
echo "О нет, вы не активировали/установили 'myplugin', сделайте это, прежде чем функция 'foo' станет доступной";
}
Также учитывайте, что foo
— это очень общее название функции. Например, плагин "omgfoo" тоже может иметь функцию foo
. Поэтому используйте префикс или пространство имен для своей функции, чтобы сделать её уникальной.
В конечном итоге вам стоит использовать действия и фильтры, так как это безопаснее и считается лучшей практикой. Подробнее об этом можно прочитать здесь

Так делать не стоит. Тема не должна зависеть от плагина, за исключением строго контролируемых ситуаций. Вместо этого используйте действия и фильтры.
В своей теме вы можете использовать:
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()
.

Активные плагины загружаются (технически — их файлы подключаются и обрабатываются PHP во время загрузки WordPress) к моменту выполнения шаблонов темы.
Таким образом, ваша функция должна быть доступна и может быть вызвана как любая другая функция:
<?php foo(); ?>
например.
