я настоятельно рекомендую со ссылкой на https://codex.wordpress.org/AJAX_in_Plugins#Ajax_on_the_Viewer-Facing_Side
Вы должны иметь PHP скрипт в каталоге подключаемого модуля, который возвращает то, что вы просите, и вы должны определить, что URL-адрес во время выполнения для справки в вашем AJAX. Вышеприведенная ссылка дает пример для enqueuing и использования wp_localize_script()
для предоставления URL-адреса для вашего настраиваемого скрипта php.
wp_enqueue_script('ajax-script',
plugins_url('/js/my_query.js', __FILE__), array('jquery'));
// in JavaScript, object properties are accessed as
// ajax_object.ajax_url, ajax_object.we_value
wp_localize_script('ajax-script', 'ajax_object',
array('ajax_url' => plugins_url('/php/myapi.php'));
файл JavaScript будет включен на каждой странице и будет прослушивать события на странице, которые требуют блока HTML, как вы описали.
Затем ваш файл myapi.php
должен получить запрос, возможно, используя строку запроса, получить соответствующий контент из wordpress api и ответить указанным контентом, который ваш javascript будет внедрен на место.
Чтобы получить доступ к WordPress API, а также, хотя, у вас есть два варианта:
- Force WordPress для запуска, начиная с вашим файлом, с помощью including
wp-load.php
. Это, вероятно, не самый чистый путь.
- Настройте custom page or slug, чтобы перейти к плагину.
Я бы посоветовал второй вариант, и посоветовать слизняка, в этом случае вы можете найти это сообщение полезным: wp_rewrite in a WordPress Plugin
Из комментария Джейсона, на основе указанной выше ссылке:
Правила перезаписи упоминаются много, но на самом деле это отвлечение - они просто помогают сделать URL-адреса более «дружественными», что не было целью .Ключ: зарегистрируйте настраиваемый параметр GET; найдите этот параметр на ранней стадии процесса рендеринга страницы; если вы обнаружите, что установлен параметр , то вывод/эхо-материал и die()
. Существует количество крючков, которые можно использовать для просмотра параметров, выбранных зависимости от того, сколько вы хотите, чтобы WP сначала настроил и обработал.
Я нашел отличное объяснение, которое привело меня к решению здесь: https://willnorris.com/2009/06/wordpress-plugin-pet-peeve-2-direct-calls-to-plugin-files Я расскажу об этом в качестве ответа, но все равно было бы хорошо услышать, как может работать более слабый синтаксический анализ URL-адреса. – Jason