Imagen destacada dinámica

3 minutos de lectura

Avatar de usuario de Wezzou
Wezzou

Recientemente instalé el complemento Imagen destacada dinámica para wordpress. Pero no sé cómo vincular imágenes. Estoy tratando de crearme una galería como esta. http://www.subcreative.com.au/#work – Desplázate hacia abajo hasta los proyectos y verás .

He puesto este código en functions.php

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

   if( function_exists('dfi_get_featured_images') ) {
       $featuredImages = dfi_get_featured_images();

       //Now, loop through the image to display
   }

   endwhile;
?>

y usé esto para vincular la imagen.

echo ' <a class="fancybox" href="'. dfi_get_featured_images() .'" style="text-align:center">Take a look</a> '; ?>

Pero cuando trato de abrir la imagen, se convierte en “/array”

  • El error te dice dónde buscar. Debe seleccionar un elemento dentro de una matriz que se ha creado. Es posible que deba cargar más código que este para que podamos ayudarlo, parece que hay otro PHP en algún lugar que está hablando de esto, por ejemplo, el código para la función dfi_get_features_images()

    –Andy Holmes

    16 de noviembre de 2013 a las 17:10

No soy un desarrollador de wordpress, pero he visto esto en el sitio web de wordpress que traté de arreglar. así que tal vez puedas probar este.

if( class_exists('Dynamic_Featured_Image') ):
    global $dynamic_featured_image;
    global $post;
     $featured_images = $dynamic_featured_image->get_featured_images( $post->ID );

     if ( $featured_images ):
        ?>
            <?php foreach( $featured_images as $images ): ?>
               <img src="https://stackoverflow.com/questions/20020916/<?php echo $images["full'] ?>" alt="">
            <?php endforeach; ?>
        <?php
        endif;
endif;

esto funciona en mi caso. Estoy usando DFI 3.1.13

  • Funcionó perfecto Gracias, cualquier posibilidad de que podamos obtener el atributo alt de este DFI gracias… Rodrigo

    –Rodrigo Zuluaga

    7 de enero de 2017 a las 18:18

Avatar de usuario de Konsole
consola

Esta respuesta solo es válida para la versión de complemento 2.0.2 e inferior.

Debe recorrer la matriz devuelta y mostrar la imagen manualmente. Prueba esto:

<?php   

    if( function_exists('dfi_get_featured_images') ) {
       $featuredImages = dfi_get_featured_images();

       //Loop through the image to display your image

       if( !is_null($featuredImages) ){

            $links = array();

            foreach($featuredImages as $images){
                $thumb = $images['thumb'];
                $fullImage = $images['full'];

                $links[] = "<a href="https://stackoverflow.com/questions/20020916/{$fullImage}" class="dfiImageLink"><img src="{$thumb}" /></a>";
            }

            echo "<div class="dfiImages">";
            foreach($links as $link){
              echo $link;
            }                
            echo "</div>";
         }        
    }

?>

  • ¿Dónde pongo esto? Funciones.php ? ¿Mi CPT?

    – Wezzou

    16 de noviembre de 2013 a las 17:32

  • Debe colocar esto en el lugar donde desea mostrar las imágenes. Por ejemplo, si desea mostrar imágenes en la página de índice principal, puede usar este código (sin bucle while externo) dentro index.php`` just after the statement `.

    – Consola

    16 de noviembre de 2013 a las 17:40

  • jaja, se crean mil millones de publicaciones cuando pongo el código en mi plantilla. @Consola

    – Wezzou

    16/11/2013 a las 17:50

  • Apuesto a que estás usando bucle dentro de un bucle. Solo necesita una sola instrucción while. Quite un bucle while.

    – consola

    16 de noviembre de 2013 a las 17:52


  • Como ya he dicho. Está utilizando un bucle dentro de un bucle. Verifique la respuesta nuevamente. He eliminado el ciclo while de mi respuesta. Ya estás dentro de un bucle, así que no necesitas eso.

    – consola

    16 de noviembre de 2013 a las 18:01

prueba esto dentro del bucle have posts

$img=dfi_get_featured_images();
$url=$img['full'];
echo ' <a class="fancybox" href="'. $full .'" style="text-align:center">Take a look</a> ';

Si full no funciona, intente con el pulgar también.

¿Ha sido útil esta solución?