Soporte » WordPress Avanzado » Eliminar primera imagen de los post de un año concreto

  • Laura N

    (@tallerwp)


    Buenos días,

    estoy usando este código para eliminar las primeras imagenes de mis post ya que estás se duplicaron al pasar de Blogger a WordPress.

    function remove_first_image ($content) {
    if (!is_page() && !is_feed() && !is_feed()) {
    $content = preg_replace(“/<img[^>]+\>/i”, “”, $content, 1);
    } return $content;
    }
    add_filter(‘the_content’, ‘remove_first_image’);

    ¿Pero como puedo hacer que solo elimine las primeras imagenes del post de un año concreto?

    ¿Hay alguna manera?

    Gracias

Viendo 4 respuestas - 1 de 4 (de 4 total)
  • Carlos Longarela

    (@carloslongarela)

    Hola @tallerwp la función comprueba dos veces que no sea un feed, con lo que una sobra, además puedes comprobar el año en una condición para eliminarlas o no (o un mes y año, o una fecha concreta), con lo que para cambiar el código y que solo las elimine si es el año 2006 por ejemplo quedaría:

    
    function remove_first_image ( $content ) {
        if ( ! is_page() && ! is_feed() ) {
            if ( '2006' === get_the_date( 'Y' ) ) {
                $content = preg_replace("/<img[^>]+\>/i", "", $content, 1);
            }
        } 
        return $content;
    }
    add_filter( 'the_content', 'remove_first_image' );
    
    Laura N

    (@tallerwp)

    Gracias Carlosssssssssssssssss @carloslongarela, por fin doy con este tema!!!!!!

    En el caso que fuera desde una fecha a otra, sabes como sería? Se complicaría mucho?

    Es decir desde 1 abril de 2015 a 19 de septiembre de 2017 elimina las primeras imágenes.

    • Esta respuesta fue modificada hace 1 mes por  Laura N.

    Hola @tallerwp

    Sólo tienes que jugar con la función get_the_date() y las comparaciones, en teoría este código te puede resolver el problema:

    
    function remove_first_image ( $content ) {
    
        if ( 'post' === get_post_type() ) {
    
        	$post_date = get_the_date( 'Ymd' );
    
            if ( '20150401' <= $post_date && '20170919' >= $post_date ) {
                $content = preg_replace("/<img[^>]+\>/i", "", $content, 1);
            }
        } 
        return $content;
    }
    add_filter( 'the_content', 'remove_first_image' );
    
    Laura N

    (@tallerwp)

    Si señor, efectivamente ese es el código. Brutal la ayuda!

    Muy agradecida

Viendo 4 respuestas - 1 de 4 (de 4 total)
  • Debes estar registrado para responder a este tema.