Плагин Wordpress: зацепить пользовательский URL - PullRequest
8 голосов
/ 06 декабря 2010

Я хочу создать плагин, который я буду использовать для загрузки jJuery AJAX табличных данных.

У меня есть функция, которая печатает данные правильно, но как мне «зацепить» определенный URL?

Как, скажем, я хочу, чтобы функция запускалась, а данные печатались всякий раз, когда выполняется запрос к /mycustomplugin/myurl.php? (Обратите внимание, что URL / файл не должен существовать)

У меня нет опыта работы с плагинами WP.

Ответы [ 4 ]

27 голосов
/ 14 мая 2013

Чтобы отфильтровать ваш пользовательский URL до того, как Wordpress начнет выполнять запросы для других вещей, используйте что-то вроде этого:

add_action('parse_request', 'my_custom_url_handler');

function my_custom_url_handler() {
   if($_SERVER["REQUEST_URI"] == '/custom_url') {
      echo "<h1>TEST</h1>";
      exit();
   }
}
1 голос
/ 07 декабря 2010

Простой

if ($_SERVER["REQUEST_URI"] == '/mycustomplugin/myurl.php') {
  echo "<my ajax code>";
}

Должны творить чудеса.

0 голосов
/ 12 июня 2019
add_action( 'init', 'my_url_handler' );

function my_url_handler() {
     if( isset( $_GET['unique_hidden_field'] ) ) {
          // process data here
     }
}

использование add_action( 'init', 'your_handler') является наиболее распространенным способом в плагинах, поскольку это действие запускается после завершения загрузки WordPress, но до отправки любых заголовков. Большая часть WP загружается на этом этапе, и пользователь проходит аутентификацию.

0 голосов
/ 07 декабря 2010

Если вы хотите вернуть обычные данные WordPress, вы можете просто включить wp-blogheader.php в свой пользовательский php-файл, например, так:


//Include Wordpress 
define('WP_USE_THEMES', false);
require('Your_Word_Press_Directory/wp-blog-header.php');
query_posts('showposts=10&cat=2');

Просто используйте обычные теги тем для возврата желаемого контента.Это

Откуда берутся данные вашей таблицы?Вы пытаетесь показать эту информацию на стороне администратора или на стороне просмотра?

Также смотрите полный список вызовов перехваченных функций с помощью wp_ajax http://codex.wordpress.org/AJAX_in_Plugins

...