短代码输出中缺少段落中断

时间:2018-06-26 14:52:49

标签: shortcode

我在Wordpress中创建了一个简码以执行查询并显示内容,但是内容的换行符已被删除。

add_shortcode( 'resource' , 'Resource' );

function Resource($atts) {

$atts = shortcode_atts( array(
    'category' => ''
), $atts );

$categories  = explode(',' , $atts['category']);

$args = array(
        'post_type'     => 'resource',
        'post_status'   => 'publish',
        'orderby'       => 'title',
        'order'         => 'ASC',
        'posts_per_page'=> -1,
        'tax_query'     => array( array(
                            'taxonomy'  => 'category',
                            'field'     => 'term_id',
                            'operator' => 'AND',
                            'terms'     => $categories
                        ) )
    );

    $string = '';
    $query = new WP_Query( $args );

    if( ! $query->have_posts() ) {
    $string .= '<p>no listings at this time...</p>';
    }

    while( $query->have_posts() ){
        $query->the_post();
    $string .= '<div id="links"><div id="linksImage">' . get_the_post_thumbnail() . '</div>
<div id="linksDetails"><h1>'. get_the_title() .'</h1><p>' . get_the_content() . '</p>
<p>for more information <a href="' . get_permalink() . '">CLICK HERE</a></div></div>';
    }


    wp_reset_postdata();
        $output = '<div id="linksWrapper">' . $string . '</div>';
        return $output;

}

关于为什么发生这种情况以及如何解决此问题的任何建议。这仅发生在简码输出上。在常规页面上-内容正确显示。

1 个答案:

答案 0 :(得分:0)

通过更多搜索找到了解决方案:

function get_the_content_with_formatting ($more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {
$content = get_the_content($more_link_text, $stripteaser, $more_file);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]&gt;', $content);
return $content;
}

工作完美,所以我想分享一下。