Крючок пользовательского действия плагина не работает
Я пытаюсь создать один базовый плагин, в котором я хочу создать свой собственный крюк действий. Вот код для того же самого.
<?php
/*
Plugin Name: Demo Plugin
Version: 1.0
*/
do_action('basic_action_demo');
?>
Теперь, после активации этого плагина, я хочу использовать этот крючок действия в моей текущей теме function.php файл, код для того же, что и ниже:
add_action('basic_action_demo','action_demo');
function action_demo()
{
echo "I am inside";
}
Теперь проблема в том, что мое подключенное действие никогда не вызывается, мы видим, что do_action вызывается безоговорочно, поэтому оно будет вызываться при каждой загрузке страницы, но оно никогда не попадает в "action_demo" метод.
Что я понял, так это то, что плагин загружается до моей темы. function.php файл выполнен. Итак, здесь сначала вызывается do_action, а затем add_action.
Намек был бы очень признателен.
Обновление:
Ниже работает действие плагина.
<?php
/*
Plugin Name: Demo Plugin
Version: 1.0
*/
add_action('basic_action_demo','action_demo');
do_action('basic_action_demo');
function action_demo()
{
echo "I am Inside";
die;
}
?>
1 answers
Вашему плагину необходимо дождаться загрузки файла тем functions.php
. Попробуйте это:
<?php
/*
Plugin Name: Demo Plugin
Version: 1.0
*/
add_action( 'after_setup_theme', function() {
do_action( 'basic_action_demo' );
} );
?>
Крючок after_setup_theme
запускается сразу после загрузки functions.php
.
Обновите свой комментарий ниже. В своем плагине создайте функцию для своей формы:
<?php
/*
Plugin Name: Demo Plugin
Version: 1.0
*/
function output_my_form () {
echo "I'm a form";
// do your action here
do_action( 'basic_action_demo' );
}
?>
Затем в вашей теме functions.php
:
if ( function_exists( 'output_my_form' ) ) {
output_my_form();
}
Это простой пример. На самом деле вы хотели бы вызвать эту функцию из form.php
в вашей теме.