Intereting Posts
Loop для извлечения 3 экземпляров post_thumbnail из 3 последних пользовательских типов сообщений, называемых «портфель», Не могу понять, почему иногда появляется поле Фильтрация данных и сохранение результатов запроса Фильтр по пользовательской таксономии и пользовательскому полю Explode Content в определенном HTML-элементе фиктивная категория, включая .php-файл Как обновить meta сообщения внутри цикла WP_Query или цикла WordPress? Боковая панель темы Inkness Как сохранить атрибуты HTML5 на разметке Поддержка сортировки массивов Почему $ wpdb возвращает строки для значений mysql integer? Необходим плагин для веб-камеры для моего клиента Отображение пользовательского содержимого пост-типа на странице с одним продуктом. Как мне сортировать почтовый листинг по количеству сообщений в деньгах? Добавление полей в экран редактирования категории, тега и пользовательской таксономии в администраторе WordPress?

Создать страницу обработки переменных сообщений

Мне нужно создать пустую страницу PHP, которая обрабатывает запрос POST. В принципе, сайт отправит мне несколько переменных сообщения. Мне нужно использовать эти переменные с плагином mycred. Вот мой код:

require_once("../../../../wp-load.php"); if (isset($_POST['reward_amount'])) { $toaward = $_POST['reward_amount']; $user = $_POST['sid']; if (!function_exists(mycred_add)) echo "Failed to add!"; if (mycred_add('Points_for_______________', 1, 1, '%plural% for ------ completion', $_POST['oid'] )) { echo "Success!"; //header("HTTP/1.1 200 OK"); } else { echo "Fail!"; //header("HTTP/1.1 412 Precondition Failed"); } } 

Это работает, но сайт, который я использую, не позволяет возвращать HTML в ответе HTTP. Как удалить HTML-код, который входит в состав wp-load.php но сохранить функцию WordPress, чтобы я мог использовать функции wordpress? Я также попытался включить wp-blog-header.php , но безрезультатно.

Вы видите много кода, который включает wp-load.php или wp-blog-header.php чтобы использовать WordPress API на php-странице, загруженной вне контекста WordPress. Часто есть лучший способ добиться этого. Также стоит отметить, что любой плагин, который делает это, будет отклонен из репозитория плагинов WordPress.org, с серьезной причиной – он подвержен нескольким видам сбоев.

В любом случае, в этом случае я бы добавил конечную точку перезаписи для прямых запросов, поэтому запрос обрабатывается WordPress.

 function wpd_mycred_endpoint(){ add_rewrite_endpoint( 'mycred', EP_ROOT ); } add_action( 'init', 'wpd_mycred_endpoint' ); 

Как всегда, когда правила перезаписи изменяются, их необходимо очистить, чтобы они вступили в силу. Это можно сделать с помощью API или просто на странице Настройки> Перманентные ссылки.

Затем parse_request действие parse_request , проверьте, установлена ​​ли ваша конечная точка, и выполняйте вашу обработку там. Затем выйдите из выполнения сценария, чтобы ничего не выводилось.

 function wpd_mycred_parse( $request ){ if( array_key_exists( 'mycred', $request->query_vars ) ){ // do your POST processing... die; } } add_action( 'parse_request', 'wpd_mycred_parse' ); 

Вы можете создать шаблон страницы, а затем создать страницу с помощью этого шаблона с URL-адресом, то есть http://mydomain.com/reward-amount . Внутри шаблона страницы вы можете поместить свой код без require_once .

РЕДАКТИРОВАТЬ

Просто прочитайте ответ Майло. Это намного лучше, чем у меня.