为什么CONTENT_ARR[‘EXTENDED’]删除段落标记?

时间:2017-06-15 作者:Zach Smith

我遇到了一个奇怪的问题content_arr[\'extended\']content_arr[\'main\'] 正在删除输出中的段落标记。

任何帮助或洞察到我正在寻找的东西,试图解决这一问题,都将不胜感激。

2 个回复
SO网友:Zach Smith

当我使用wpautop 对于输出,它解决了问题。我很想从一个比我更聪明的人那里知道为什么这会解决这个问题。为什么我们只使用the_content 包括p标记,但当我们使用get_extended p标签是否已删除?

$content_arr = get_extended ( $post->post_content );

            if( strpos( get_the_content(), \'<span id="more-\' ) == true ) {
                echo wpautop($content_arr[\'main\']);
                echo \'<div class="morecontent">\'. wpautop($content_arr[\'extended\']).\'</div>\';
            }
            else {
                the_content();
            }

SO网友:Shaun Cockerill

$post->post_content 默认情况下没有段落标记。通常在显示时使用the_content() 因为wpautop 是使用此函数时应用的筛选器之一。这也适用于do_shortcode 以及其他一些功能。

当在页面上显示扩展内容时,您应该通过函数传递每个部分wpautopdo_shortcode 等等,或应用过滤器the_content 相反

<?php $parts = get_extended( $post->post_content ); ?>
<div class="post_content">
    <?php echo wpautop( do_shortcode( $parts[\'main\'] ) ); // Not entirely sure of the best order. ?>
    <?php if ( ! empty( $parts[\'extended\'] ) ) : ?>
        <!-- Example Bootstrap toggle link. -->
        <a href="#read-more" data-toggle="collapse" data-target="#read-more">
            <?php _e( \'Read More\' ); ?>
        </a>
        <div id="read-more">
            <?php echo apply_filters( \'the_content\', $parts[\'extended\'] ); ?>
        </div>
    <?php endif; ?>
</div>

结束

相关推荐

Twenty Seventeen Pages Loop

有人能向我解释一下,在静态主页的2017主题中,它在哪里被引导去循环页面而不是帖子?我不明白它是在哪里这样做的,从一个新的WordPress安装。在里面front-page.php 我有这个:<?php // Get each of our panels and show the post data. if ( 0 !== twentyseventeen_panel_count() || is_customize_preview() ) : // If