Мне нужно использовать функцию check_ajax_referer()
в плагине для проверки переданного значения, но в описании пишется:
Это pluggable функция — т.е. её можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.
Значит этот хук add_action('wp_ajax_(action)', 'my_action_callback');
нужно вызывать из plugins_loaded
?
Нет, не так.
add_action('wp_ajax_action', 'my_action_callback')
ставят прямо в тело плагина. Если у плагина один файл, то в него.
Есть описание последовательности вызова хуков. Из неё видно, что сначала сработает plugins_loaded
, потом init
, и только потом уж будут вызваны хуки ajax (они не указаны в статье по ссылке, но вызываются они после полной загрузки ядра).
Возможно, у вас есть стандартное непонимание. На самом деле, add_action()
не делает ничего, она только заносит информацию во внутреннюю таблицу хуков WordPress. Ваша функция my_action_callback
будет вызвана, как я описал выше, после полной загрузки ядра.
Так что вставляйте указанный выше add_action
прямо в тело плагина. А check_ajax_referer()
должен быть внутри вашей my_action_callback
.
Код вашего плагина должен выглядеть примерно так:
<?php
/**
* Plugin Name: My Cool Plugin
* Plugin URI: https://cool.org/
* Description: Coolest plugin.
* Version: 1.0
* Author: Me
* Author URI: https://cool.org/
* Text Domain: cool
* Domain Path: /languages/
*
* @package cool
*/
function my_action_callback() {
check_ajax_referer( 'cool_action' );
// Some code...
}
add_action( 'wp_ajax_cool_action', 'my_action_callback' );
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Помогите новичку не могу понять как записать в массив в цикле значение, записываю таким вот образом