2013-06-20 55 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