2013-06-20 12 views
1

на данный момент моя тема Я загружаю сообщения с помощью AJAX. Но как я могу получить также мета-ключи почты через AJAX?Загрузка Wordpress metakeys с AJAX

В данный момент функции 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 
     } 
    }) 

С этим кодом я только получить основную информацию после (название, идентификатор, дата, содержание .. .).

Так кто-нибудь пытался получить мета ключи/значения с помощью 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; 
} 

Я добавил «мета» ключ к каждому posts с помощью get_post_meta()

+0

Хм, это дает сообщение об ошибке: Не удается использовать объект типа 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

Смежные вопросы