Cum să elimini afișarea imaginilor dintr-o postare cu the_content()?

22 sept. 2014, 05:56:41
Vizualizări: 20.2K
Voturi: 2

Încercând să învăț mai multe despre crearea propriilor teme și să nu folosesc plugin-uri, am dorit să pot afișa toate imaginile dintr-o postare excluzând miniatura în fișierul meu single-foobar.php și pot face asta cu:

<?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>Nu există imagini încărcate momentan</span>
 <?php } endwhile; endif; ?>

Totuși, când aplic HTML-ul meu static și încerc să apelez get_the_content() cu:

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

acesta elimină imaginile dar lasă un (imagine) în postare cu spații și apoi afișează textul rămas. Am găsit o întrebare similară dar aceasta sugerează folosirea get_the_content() care elimină toată stilizarea din postare. Deci întrebarea mea este cum pot elimina imaginile din the_content()? Am găsit "Obținerea doar a textului din the_content WordPress (Eliminarea tag-urilor de imagine)" din căutările mele, dar și aceasta folosește abordarea cu get_the_content().

0
Toate răspunsurile la întrebare 3
1
10

Încearcă să elimini (imaginea), astfel:

<?php 
$content = get_the_content();
$content = preg_replace("/<img[^>]+\>/i", " ", $content);          
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
?>
22 sept. 2014 07:04:51
Comentarii

În cazul imaginilor cu etichetă <a>, conținutul sosește în etichete goale <a></a>.

Ravi Patel Ravi Patel
19 mai 2016 14:54:38
2

Metoda pe care o prefer este puțin mai scurtă decât răspunsul anterior.

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

Funcția WordPress wp_trim_words() returnează doar text (fără imagini).

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

25 ian. 2016 17:05:42
Comentarii

Nu este chiar adevărat, wp_trim_words returnează și imagini

spacebiker spacebiker
10 oct. 2018 14:37:07

A funcționat pentru mine - mulțumesc că ți-ai făcut timp :-)

michaelmcgurk michaelmcgurk
28 iul. 2022 19:24:47
0

aproape la fel ca funcția derekshrink direct din dezvoltarea WordPress.

<?php echo wp_trim_words( get_the_content(), 40, '...' ); ?>

puteți modifica numărul de cuvinte pe care doriți să le afișați

17 iul. 2020 08:40:39