JQuery加载不带模板的php-php文件

时间:2013-03-10 作者:Chris

我即将开始编写一个php文件,该文件将返回一个JSON数组,用作JQuery自动完成源。

我想创建我的源。不使用WordPress模板加载的php文件。

当前/包括/来源。php包含:

<?php
echo "hello world";
?>
但如果我去http://www.mywordpress.com/includes/source.php 相反,我得到了模板化的404页。

我如何避免这种情况?

编辑

作为对评论的回应,以下是我的htaccess文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

1 个回复
最合适的回答,由SO网友:Kaung Ko 整理而成

为什么不使用Wordpress ajax挂钩呢。这真的很简单。

首先从javascript或jQuery调用函数,将键用作“action”,将值用作“function hook name”

jQuery(document).ready(function($) {

var data = {
    action: \'my_action\', // here is the function name
    whatever: 1234  // if there are the data you want to pass 
};

// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(ajaxurl, data, function(response) {
    alert(\'Got this from the server: \' + response.first_name +\' \'+response.last_name);
});
});
然后需要创建ajax钩子函数。php

//wp_ajax is the prefix of the hooks and follow with your action name
add_action(\'wp_ajax_my_action\', \'my_action_callback\');   //this line is for logged in users
add_action(\'wp_ajax_nopriv_my_action\', \'my_action_callback\'); // this is for not logged in users
然后在这里编写自己的函数,并在函数中使用json格式返回结果。php就在ajax挂钩的下方或上方。

function my_action_callback(){
      $data = array(
                 \'first_name\' => \'foo\',
                 \'last_name\'  => \'bar\'
              );
     return json_encode($data); 
     die; // you need to die otherwise you will see extra zero in your result because Wordpress automatically insert zero to make sure you stop the function here
}
我希望你乐于使用这种方式。这很容易,也很快。

如果你想读更多http://codex.wordpress.org/AJAX_in_Plugins

结束

相关推荐

如何让我的页面加载jQuery UI效果库?

我第一次使用javascript在我的网站主页上制作一些简单的动画。到目前为止,我已经在标题中添加了以下内容。php文件(仅用于我的主页),位于wp\\U标题行之前。<?php function my_scripts_method() { wp_enqueue_script(\'jquery\'); } add_action(\'wp_enqueue_scripts\', \'my_scripts_method\');