Jquery 使用AJAX加载Wordpress元键
目前我的主题是用AJAX加载帖子。但是如何通过AJAX获得post元键呢 目前PHP函数如下所示:Jquery 使用AJAX加载Wordpress元键,jquery,ajax,wordpress,Jquery,Ajax,Wordpress,目前我的主题是用AJAX加载帖子。但是如何通过AJAX获得post元键呢 目前PHP函数如下所示: add_action('wp_ajax_nopriv_ajax_action', 'ajax_loading'); add_action('wp_ajax_ajax_action', 'ajax_loading'); function ajax_loading() { switch($_REQUEST['fn']) { case 'get_latest_posts':
add_action('wp_ajax_nopriv_ajax_action', 'ajax_loading');
add_action('wp_ajax_ajax_action', 'ajax_loading');
function ajax_loading() {
switch($_REQUEST['fn']) {
case 'get_latest_posts':
$output = ajax_get_latest_posts($_REQUEST['count']);
break;
default:
$output = 'Error. No function specified.';
break;
}
$output = json_encode($output);
if (is_array($output)) {
print_r($output);
}
else {
echo $output;
}
die;
}
function ajax_get_latest_posts($count) {
$posts = get_posts('numberposts='.$count.'&post_status=publish');
return $posts;
}
function ajax_get_latest_posts($count) {
$posts = get_posts('numberposts='.$count.'&post_status=publish');
foreach ($posts as $key => $post) {
$posts[$key]->meta = get_post_meta($post->ID);
}
return $posts;
}
和jQuery:
$.ajax({
url: 'http://domain.com/wp-admin/admin-ajax.php',
type: 'POST',
data: {
'action': 'ajax_action',
'fn': 'get_latest_posts',
'count': 15
},
dataType: 'JSON',
success:function(data){
//print stuff here
},
error: function(errorThrown){
//error stuff here
}
})
有了这些代码,我只能得到主要的帖子信息(标题、id、日期、内容……)
那么,有人尝试过使用AJAX/JS从帖子中获取元键/值吗?您可以将
AJAX\u get\u latest\u posts()
函数调整为类似以下内容:
add_action('wp_ajax_nopriv_ajax_action', 'ajax_loading');
add_action('wp_ajax_ajax_action', 'ajax_loading');
function ajax_loading() {
switch($_REQUEST['fn']) {
case 'get_latest_posts':
$output = ajax_get_latest_posts($_REQUEST['count']);
break;
default:
$output = 'Error. No function specified.';
break;
}
$output = json_encode($output);
if (is_array($output)) {
print_r($output);
}
else {
echo $output;
}
die;
}
function ajax_get_latest_posts($count) {
$posts = get_posts('numberposts='.$count.'&post_status=publish');
return $posts;
}
function ajax_get_latest_posts($count) {
$posts = get_posts('numberposts='.$count.'&post_status=publish');
foreach ($posts as $key => $post) {
$posts[$key]->meta = get_post_meta($post->ID);
}
return $posts;
}
我为每个
posts
添加了一个“meta”键,使用您可以将ajax\u get\u latest\u posts()
函数调整为如下内容:
add_action('wp_ajax_nopriv_ajax_action', 'ajax_loading');
add_action('wp_ajax_ajax_action', 'ajax_loading');
function ajax_loading() {
switch($_REQUEST['fn']) {
case 'get_latest_posts':
$output = ajax_get_latest_posts($_REQUEST['count']);
break;
default:
$output = 'Error. No function specified.';
break;
}
$output = json_encode($output);
if (is_array($output)) {
print_r($output);
}
else {
echo $output;
}
die;
}
function ajax_get_latest_posts($count) {
$posts = get_posts('numberposts='.$count.'&post_status=publish');
return $posts;
}
function ajax_get_latest_posts($count) {
$posts = get_posts('numberposts='.$count.'&post_status=publish');
foreach ($posts as $key => $post) {
$posts[$key]->meta = get_post_meta($post->ID);
}
return $posts;
}
我使用Hmm为每个
posts
添加了一个“meta”键,它给出了一个错误:不能使用WP\u Post类型的对象作为数组。这行代码:$posts[$key]['meta']=get\u post\u meta($post->ID);对不起,我没有Wordpress环境来检查它。它可能应该是$posts[$key]->meta=get\u post\u meta($post->ID)因为$posts是一个WP对象数组,而不是ArrayIndeed,所以我自己也应该这么想。让它工作起来。谢谢!嗯,它给出了一个错误:不能使用WP_Post类型的对象作为数组。这行代码:$posts[$key]['meta']=get\u post\u meta($post->ID);对不起,我没有Wordpress环境来检查它。它可能应该是$posts[$key]->meta=get\u post\u meta($post->ID)因为$posts是一个WP对象数组,而不是ArrayIndeed,所以我自己也应该这么想。让它工作起来。谢谢!