我遇到了使用jQuery加载wordpress内容的ajax的问题。 它工作得很好,除了没有解析行返回。 它被json拉进来,并被困在两个不同的div中。
jquery代码:
$('.load').on('click',function(e){
e.preventDefault();
var person_clicked = $(this).attr('id');
$.post('/load.php', { id:person_clicked, callback:'person' } )
.done(function(data) {
alert(data);
$('.page_tagline').html(data.title);
$('.left_content').html(data.content);
scrollToElement($('#hero'));
});
return false;
});
load.php:
<?php
/* Send as JSON */
header("Content-Type: application/json", true);
require('../../../wp-load.php');
?>
<?php query_posts('p='.$_POST['id']);
$post = $wp_query->post;
?>
<?php if (have_posts()) : the_post(); ?>
<?php
$returned = array(
'title' => get_the_title(),
'content' => get_the_content(),
);
?>
<?php
echo json_encode($returned);
?>
<?php endif;?>
当我提醒它时,内容看起来好像段落在那里。段落之间有一定的间距。但当它落入div时,它只是一个巨大的连续判决。
另外,当我正常加载时,间距就在那里。我尝试删除ajax的json部分,然后将整个东西加载到div中,并且间距保持不变,这肯定是一个json的东西(据我所知)。这样做时,代码输出/ r / n / r / n,其中新段落应该是,这正是wordpress所做的。
关于如何让json保留段落的任何想法?
答案 0 :(得分:2)
由于未运行函数wpautop(),因此无法自动从rowbreaks转换为p-tag。
它是the_content上的过滤器。如果你希望get_the_content()具有与the_content()相同的格式
你需要通过过滤器传递它:
apply_filters('the_content',get_the_content())