Intereting Posts
Тестирование локального сайта WordPress через LAN с iPad, iPhone Cookie не создан в запросе AJAX Пользовательские значения метаданных отправляются с помощью автосохранения Создание страницы PHP для перенаправления вручную Неустранимая ошибка: вызов функции undefined get_post () с помощью ajax Все, опубликованные и отложенные ордера Где находится шаблон «Сообщения» / «Блог»? Установка определенного размера изображения для определенного поля загрузки файла формы Как сделать сообщения WordPress асинхронными Нечетные /wp-admin/admin-ajax.php записи в Wassup Добавить класс Авторский класс в WordPress Можно ли импортировать резервную копию WordPress с одного сайта в конфигурацию с несколькими сайтами? получить файл резервной копии из базы данных wordpress за x дней Использование AJAX и PHP для загрузки следующего объекта post использование post__in позволяет дублировать идентификатор сообщения

Возвращает пользовательское значение в функции, добавленной в действие

Я рассмотрел разницу между действиями и фильтрами, и, насколько я понимаю, невозможно создать функцию, которая добавляется в действие , возвращает (пользовательское) значение .

Мой сценарий:

  • После сохранения сообщения я попытаюсь сохранить еще одну запись. Поэтому я использую add_action( 'save_post', 'create_another_post');
  • В зависимости от некоторых условий сохранение этого дополнительного сообщения происходит (в этом случае я хотел бы вернуть true ), или он не возвращает (возвращает false )

Как я могу реализовать этот сценарий true/false ? Я ценю вашу помощь и идеи.

Solutions Collecting From Web of "Возвращает пользовательское значение в функции, добавленной в действие"

Верный. Action hooks не возвращают контент, и, честно говоря, если вам нужен крючок действия для возврата контента, есть довольно хороший шанс, что вы делаете что-то неправильно. Однако, если он окажется вашим единственным вариантом, самый чистый способ сделать это – со статической переменной:

 function action_value_grab() { static $value = false; $is_hooked = current_filter(); if (!empty($is_hooked)) { $value = true; } return $value; } // var_dump(action_value_grab()); // debug add_action('test_hook','action_value_grab'); do_action('test_hook'); // var_dump(action_value_grab()); // debug 

Просто вызовите функцию – static_value_grab() – после того, как хук запустится, чтобы получить значение $value .

на мой взгляд, это правильный сценарий, его надежный способ предложить ваш плагин как интерфейс для других плагинов, но все же каждый плагин может быть активным или неактивным, а wp не будет разбиваться (по сравнению с вызовом метода, который может не существовать, потому что плагин не активирован

я решил это, передав объект, например:

 // define action with param for result transport function some_action($someParam, $transport) { // do stuff if($someParam > 10) { $transport->return = true; } else { $transport->return = 5; } } add_action('some_action', 'some_action', 10, 2); // call action do_action('some_action', 5, $transport = new stdClass()); var_dump($transport->return); // output true do_action('some_action', 11, $transport = new stdClass()); var_dump($transport->return); // output 5