it-swarm.com.de

Warum entfernt content_arr ['extended'] Absatz-Tags?

Ich stoße auf ein seltsames Problem, bei dem content_arr['extended'] oder content_arr['main'] die Absatz-Tags in der Ausgabe entfernt.

Jede Hilfe oder Einsicht in etwas, das ich überblicke und das versucht, dieses Problem zu lösen, wäre sehr dankbar.

1
Zach Smith

scheint, wenn ich das folgende unter Verwendung von wpautop zur Ausgabe hinzufüge, es das Problem löst. Ich würde gerne von jemandem erfahren, der schlauer ist als ich selbst, warum dies das Problem behebt. warum, wenn wir nur the_content verwenden, werden die p-Tags eingeschlossen, aber wenn wir get_extended verwenden, werden die p-Tags entfernt?

$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();
            }
1
Zach Smith

$post->post_content hat standardmäßig keine Absatz-Tags. Normalerweise werden sie bei der Anzeige mit the_content() hinzugefügt, da wpautop einer der Filter ist, die bei Verwendung dieser Funktion angewendet werden. Dies gilt auch für do_shortcode und einige andere Funktionen.

Wenn Sie erweiterten Inhalt auf der Seite anzeigen, sollten Sie jeden Teil durch die Funktionen wpautop und do_shortcode usw. leiten oder stattdessen den Filter the_content anwenden.

<?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>
0
Shaun Cockerill