1

我在使用 jQuery 加载 wordpress 内容时遇到问题。它工作得很好,除了行返回没有被解析。它与 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;
});

加载.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 保留段落的任何想法?

4

1 回答 1

3

由于函数wpautop()未运行,因此您不会自动从 rowbreaks 转换为 p-tags 。
它是the_content上的过滤器。如果您希望get_the_content()具有与 the_content() 相同的格式,则需要通过过滤器传递它:

apply_filters('the_content',get_the_content())
于 2013-08-12T23:35:10.907 回答