2013-06-20 39 views
1

此刻我的主题是使用AJAX加载帖子。但我怎么能通过AJAX发布meta key?使用AJAX加载Wordpress metakeys

目前功能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': 
     $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; 
} 

和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的帖子获取元键/值?

回答

1

你可以调整ajax_get_latest_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; 
} 

我添加使用get_post_meta()

+0

嗯一个“元”键,每个posts,它提供了错误:无法使用类型的对象WP_Post作为数组。这是为这一行:$ posts [$ key] ['meta'] = get_post_meta($ post-> ID); – user995317

+0

对不起,我没有一个Wordpress环境来检查它。它应该可能是'$ posts [$ key] - > meta = get_post_meta($ post-> ID);'因为$ posts是一个WP对象的数组而不是数组 – yoavmatchulsky

+0

的确,我应该认为我自己。得到它的工作。非常感谢! – user995317