¿Cómo eliminar imágenes que se muestran en una entrada con the_content()?
Tratando de aprender más sobre la creación de mis propios temas y sin usar plugins, quería tener la capacidad de mostrar todas las imágenes en una entrada excluyendo la miniatura en mi archivo single-foobar.php
y puedo hacerlo con:
<?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 hay imágenes cargadas en este momento</span>
<?php } endwhile; endif; ?>
Sin embargo, cuando aplico mi HTML estático y luego trato de llamar a get_the_content()
con:
<?php
$content = get_the_content();
$content = preg_replace("/<img[^>]+\>/i", "(image) ", $content);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
?>
elimina las imágenes pero deja un (image)
en la entrada con espacios y luego muestra el texto restante. Encontré una pregunta similar pero sugiere usar get_the_content()
pero eso elimina todos los estilos de la entrada. Entonces mi pregunta es ¿cómo puedo eliminar las imágenes de the_content()
? Encontré "Obtener solo texto de the_content en WordPress (Eliminar etiquetas de imagen)" en mis búsquedas pero eso todavía usa el enfoque de get_the_content()
.

El método que prefiero usar es un poco más corto que la respuesta anterior.
<?php $myExcerpt = wp_trim_words( get_the_content(), 20, '' ) ;
echo $myExcerpt ; ?>
La función de WordPress wp_trim_words() devuelve solo texto (sin imágenes).
wp_trim_words ( string $texto, int $num_palabras = 55, string $mas = null )
