it-swarm.com.de

Wie entferne ich Bilder von der Anzeige in einem Beitrag mit the_content ()?

Um mehr darüber zu erfahren, wie ich meine eigenen Designs erstelle und keine Plugins verwende, wollte ich die Möglichkeit haben, alle Bilder in einem Beitrag mit Ausnahme der Miniaturansicht in meiner single-foobar.php-Datei anzuzeigen.

<?php if ( have_posts() ) : while ( have_posts() ) : the_post();    

$thumb_ID = get_post_thumbnail_id( $post->ID );
 $args = array(
   'post_type' => 'attachment',
   'numberposts' => -1,
   'post_status' => null,
   'post_parent' => $post->ID,
   'exclude' => $thumb_ID
  );

$attachments = get_posts( $args );
 if ( $attachments ) {
    foreach ( $attachments as $attachment ) {
       echo '<div class="portproject">';
       $image_res = wp_get_attachment_image( $attachment->ID, ' img-responsive' );
       echo $image_res;
       echo '</div>';
      }
 }
 else { ?>
    <span> No pictures loaded at this time</span>
 <?php } endwhile; endif; ?>

Wenn ich jedoch mein statisches HTML anwende und dann versuche, get_the_content() aufzurufen, geschieht Folgendes:

<?php 
$content = get_the_content();
$content = preg_replace("/<img[^>]+\>/i", "(image) ", $content);          
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
?>

es entfernt die Bilder, hinterlässt jedoch einen (image) im Beitrag mit Leerzeichen und zeigt dann den verbleibenden Text an. Ich habe eine ähnliche frage gefunden, die jedoch die Verwendung von get_the_content() nahelegt, aber das gesamte Styling aus dem Beitrag entfernt. Meine Frage ist also, wie ich Bilder aus the_content() entfernen kann. Ich habe " Erhalten des Inhalts von WordPress Nur Text (Entfernen von Bild-Tags) " aus meinen Suchen gefunden, aber das verwendet immer noch den get_the_content()-Ansatz.

Versuchen Sie, (Bild) wie folgt zu entfernen:

<?php 
$content = get_the_content();
$content = preg_replace("/<img[^>]+\>/i", " ", $content);          
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
?>
9
Bernie

Die von mir bevorzugte Methode ist etwas kürzer als die vorherige Antwort.

<php $myExcerpt = wp_trim_words( get_the_content(), 20, '' ) ; 
echo $myExcerpt ; ?>

Die WordPress-Funktion wp_trim_words () liefert nur Text (keine Bilder).

wp_trim_words ( string $text, int $num_words = 55, string $more = null )

4
derekshirk