Wordpress插件:挂钩自定义网址

时间:2010-12-06 09:56:22

标签: php wordpress wordpress-plugin

我想制作一个插件,我将用于表格数据的jQuery AJAX加载。

我有一个正确打印数据的函数,但是如何“挂钩”到特定的URL?

就像说,我希望运行该函数,并且每当运行对/mycustomplugin/myurl.php的请求时都要打印数据? (请注意,网址/文件不应存在)

我没有WP插件的经验。

4 个答案:

答案 0 :(得分:25)

要在Wordpress开始执行其他事物的查询之前过滤您的自定义URL,请使用以下内容:

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 :(得分:1)

一个简单的

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

应该创造奇迹。

答案 2 :(得分:0)

如果您想要返回常规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

查看调用钩子函数的完整细分

答案 3 :(得分:0)

add_action( 'init', 'my_url_handler' );

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

使用add_action( 'init', 'your_handler')是插件中最常见的方法,因为this action是在WordPress完成加载后但发送任何标头之前触发的。 WP的大部分已在此阶段加载,并且用户已通过身份验证。