我使用wp_localize_script
将帖子数据发送到ajax。
wp_localize_script( 'my-script.js', 'ajax_object', array('ajax_url' => admin_url('admin-ajax.php')) );
add_action( 'wp_ajax_load_more_posts', 'ajax_posts' );
将发布数据发送到ajax:
function ajax_posts(){
global $post;
$args = array('post_type'=>'post', 'posts_per_page'=> 2);
$posts_arr=[];
$query = new WP_Query($args);
if($query->have_posts()):
while($query->have_posts()):$query->the_post();
$posts_arr[] = $post;
endwhile;
wp_reset_postdata();
endif;
wp_send_json_success(array('post'=>$posts_arr));
}
在我的ajax成功函数中,我使用以下内容将帖子附加到HTML:
success:function(response){
var post_data = response.data.post;
$.each(post_data, function(index, value) {
$("#content").append('<a href="How can I get the post URL here?">' + value.post_title + '</a>');
});
}
它为HTML添加了2个帖子。它运行良好但我怎样才能将帖子url添加到ajax_posts()
php函数并将其传递给ajax并使用?
这是我从ajax获得的数据:
是否可以将帖子网址添加到帖子数组?
注意:我在点击按钮时使用ajax加载更多帖子,但在此处简化了代码。我无法直接将php添加到js。它必须从ajax_posts()
php函数发送到我的js中的aj。
答案 0 :(得分:0)
你可以简单地做这样的事情:
function ajax_posts(){
global $post;
$args = array('post_type'=>'post', 'posts_per_page'=> 2);
$posts_arr=[];
$query = new WP_Query($args);
if($query->have_posts()):
while($query->have_posts()):$query->the_post();
$posts_arr[] = array(
'permalink' => get_permalink(),
'ID' => $post->ID,
'post_title' => $post->post_title,
'post_content' => $post->post_content,
'post_author' => $post->post_author,
'post_date' => $post->post_date
// Add more fields as needed here
);
endwhile;
wp_reset_postdata();
endif;
wp_send_json_success(array('post'=>$posts_arr));
}