在我的wordpress插件中,我需要有一个JSON选项来加载,使用jquery,关于自定义帖子类型的信息。这个jquery调用将进入一个页面,所有用户都应该看到它。在wordpress中调用json函数
据我从codex明白我应该有一个功能:
function my_json_returning_function(){
// get json objects here
echo $json;
die();
}
还有操作:
add_action('wp_ajax_my_json_action', 'my_json_returning_function');
add_action('wp_ajax_nopriv_my_json_action', 'my_json_returning_function');
所有在我的插件文件。
则是这样的:
jQuery(document).ready(function($) {
var data = {
action: 'my_json_action',
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(<?php echo admin_url('admin-ajax.php');?>, data, function(response) {
alert('Got this from the server: ' + response);
});
});
应该叫有问题的功能。
我真正的问题是我应该在哪里放置所有不同的部分 - 如果有东西丢失。
php函数和动作钩子进入插件文件。但是,我更加困惑的JavaScript。我想把它放在插件的JavaScript文件中,但因为我必须使用PHP获取管理网址,这成为一个问题。
另外,如何确保仅在某个页面中调用脚本?是否有更多的钩子和过滤器我应该适应?或者,在该页面上执行简码时,可以使用wp_enqueue_script加载它,或者是后期加载,因为我似乎需要将它加载到标题中。
很多问题,但我希望你能理解我的问题的基础 - 我很难将代码放在wordpress结构的正确位置。
编辑: 调用回波ADMIN_URL( '管理员-ajax.php');至少在我眼中是最优雅的做法。我宁愿有一个json API,以及其独立的url,并在ajax调用中调用它。我将如何去设置一个WordPress的页面,只返回一个JSON对象?
这个问题[已在WordPress的堆栈交换回答](http://wordpress.stackexchange.com/questions/3610 /如何管理的阿贾克斯通话和JSON的功能于WordPress的)。诀窍是您可以使用'wp_localize_script()'将PHP配置值发送给Javascript。 – 2010-11-17 14:41:00