【发布时间】:2014-09-21 02:08:40
【问题描述】:
我在 WordPress 页面上有一张世界地图。我想根据点击地图的哪个区域将特定帖子加载到页面上。我正在写这个作为我网站的插件。这是我现在拥有的:
index.php:
function get_post_data(){
// Switch based on region
switch($_REQUEST['region']) {
//Asia
case 'China':
case 'Japan':
class Post{
function get_post(){
global $more;
$more = 0;
query_posts('p=122');
if(have_posts()) : while(have_posts()) : the_post();
the_title( '<h2>', '</h2>' );
the_post_thumbnail('medium');
the_content( '<p>', '</p>' );
endwhile;
endif;
wp_reset_query();
}
}
break;
//Middle East
case 'Pakistan':
case 'Afghanistan':
class Post{
function get_post(){
global $more;
$more = 0;
query_posts('p=123');
if(have_posts()) : while(have_posts()) : the_post();
the_title( '<h2>', '</h2>' );
the_post_thumbnail('medium');
the_content( '<p>', '</p>' );
endwhile;
endif;
wp_reset_query();
}
}
break;
//etc
}
$post = new Post();
$post->get_post();
echo json_encode($post);
die();
}
add_action('wp_ajax_get_post_data', 'get_post_data');
add_action('wp_ajax_nopriv_get_post_data', 'get_post_data');
?>
start.js:
onRegionClick: function(element, code, region)
{
$.ajax(get_data.ajaxurl, {
data: {region: region, 'action': 'get_post_data'},
dataType: 'json',
success: function(response) {
$("#post").html(response);
}
});
}
AJAX 响应返回与我想要的帖子相关的所有标记,但它没有将其输出到#post div。所以我知道 AJAX、开关和地图设置正确。我只是不知道如何将 WP 帖子分配给我可以在 JSON 中输出的变量。我认为它与 get_the_content() 有关,但我不确定如何正确使用它……。
【问题讨论】: