Vergleichen Sie the_excerpt () mit dem_content ()

Gibt es eine Möglichkeit, the_excerpt () mit the_content () zu vergleichen, um zu wissen, ob the_excerpt () tatsächlich den gesamten Post-Inhalt anzeigt? zum Beispiel, wenn ein Beitrag besonders kurz war.

Letztendlich möchte ich am Ende der Auszüge einen Link “Mehr lesen” haben. aber ich will, dass es eine Sache für Posts und eine andere für Posts des Videoformats sagt (dh “schaue das Video” statt “lies den Rest”). aber gleichzeitig will ich das nicht nach dem auszug manuell anheften, aber ich habe viele posts, die kurz genug sind, sie brauchen keinen ‘mehr lesen’ link, da the_excerpt den vollständigen post anzeigt.

aber das Hinzufügen des Permalinks zu dem excerpt_more-Filter ist nicht ganz richtig, da es keinen Link zu den Video-Posts hinzufügen wird, die keinen anderen Inhalt haben.

also stecke ich zwischen den beiden fest. Ich hoffe, das ergab einen Sinn. Wenn es nicht passiert ist es spät und ich werde versuchen, es am Morgen neu zu erklären.

Solutions Collecting From Web of "Vergleichen Sie the_excerpt () mit dem_content ()"

Was Sie mit dem Video machen wollen, ist genau das, was Post Formats erstellt wurden.

Fügen Sie dies functionen hinzu:

add_theme_support( 'post-formats', array( 'video' ) ); 

Und dann das, um Ihren Read More Link zu behandeln:

 if( !has_post_format( 'video' ) ) { echo 'Read More…'; } else { echo 'Watch the Video…'; } 

@mrwweb hat Recht, Post-Formate sind in den meisten Fällen sehr nützlich.

Als allgemeinere Lösung könnten Sie the_excerpt() und the_content() in einer function kombinieren:

 function wpse_51699_conditional_excerpt( $more_link_text = null, $stripteaser = false ) { $excerpt = apply_filters( 'the_excerpt', get_the_excerpt() ); $content = get_the_content( $more_link_text, $stripteaser ); $content = apply_filters('the_content', $content); $content = str_replace(']]>', ']]>', $content); $stripped_content = strip_tags( $content ); $content_length = mb_strlen( $stripped_content, 'utf-8' ); $excerpt_length = mb_strlen( $excerpt, 'utf-8' ); // $content is just 20% longer than excerpt. Adjust this to your needs. if ( ( $excerpt_length * 1.2 ) >= $content_length ) { print $content; return; } echo $excerpt . $more_link_text; } 

In deinem Thema rufst du jetzt an …

 wpse_51699_conditional_excerpt( sprintf( 'Read more', get_permalink() ) ); 

… anstelle von the_excerpt(); .