Создал плагин WP, в папке с плагином создал второй php файл, который выполняет post cURL запрос и к нему
разрешен прямой доступ.
require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
$body = array(
'id' => '1',
'user_id' => '100'
);
$args = array(
'body' => $body
);
$response = wp_remote_post( 'https://site.ru/test.php', $args );
$body = wp_remote_retrieve_body( $response );
echo $body;
Как обойтись без подключения строки
require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
?
Писал в WP, меня отправили на страницу с рекомендациями:
Если вам нужно иметь ‘страницы’ прямой доступ с помощью внешнего сервиса, то вы должны использовать query_vars и/или переписать правила, чтобы создать виртуальную страницу, которая вызывает функцию.
Пожалуйста, ознакомьтесь с плагинами справочник по API для получения дополнительной информации: codex.wordpress.org/Plugin_API
если вы пытаетесь использовать AJAX, пожалуйста, прочитайте это: codex.wordpress.org/AJAX_in_Plugins
Для других возможностей, или лучше понять, почему мы не разрешаем это, прочитайте это: ottopress.com/2010/dont-include-wp-load-please
Прочел, чувствую, что там есть решение моей задачи, но как реализовать не понял. В примере речь идет о подключении css и js, ничего полезного там выяснить не смог, понял, что подключать
require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
нельзя, т.к. это грузит всю систему wp и путь к файлу может быть другим у разных пользователей wp.
Помогите разобраться, пожалуйста. Как мне изменить скрипт, чтобы он не загружал постоянно ядро wp?
Если второй php файл подключить к основному файлу плагина, сразу выполняется cURL post запрос и вместо всего сайта отображается результат выполнения cURL.
Спасибо!