• Resolvido Besouro

    (@besouro)


    Olá. Não tenho conhecimento de PHP, por isso to apanhando bastante para solucionar um problema.

    Tenho uma galeria que puxa os thumbs dos anexos do post. Até ai funciona, mas preciso que abra em uma lightbox/modal. Para isso deve estar com a class e o onclick assim:

    class='highslide' onclick='return hs.expand(this)'

    Então enxaixei no código dessa forma:

    <?php 
    
    $args = array(
    	'post_type' => 'attachment',
    	'numberposts' => null,
    	'post_status' => null,
    	'post_parent' => $post->ID
    );
    
    $attachments = get_posts($args);
    if ($attachments) {
    	foreach ($attachments as $attachment) {
    
    		echo "<li >";
    		echo "<a href='";
    		the_permalink();
    		echo "' class='highslide' onclick='return hs.expand(this)' title='";
    		echo the_title();
    		echo "'  >";
    		the_attachment_link($attachment->ID, false);
    		echo "</a>";
    		echo "</li>";
    
    	}
    }
    
     ?>

    Mas a linha do the_attachment_link já cria um link, então o link fica duplicado e não pega a class e o onclick! Alguém sabe como colocar a class e o onclick no the_attachment_link, ou usar outro metodo de chamar os thumbs e links.

    Desde já obrigado

Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • Crie o link vc mesmo sem usar o the_attachiment_link

    Ficaria + ou – assim

    foreach ($attachments as $attachment) {
    
    $img_full = wp_get_attachment_url( $id );
    $img_src = wp_get_attachment_image_src( $id, $size );
    $img_src = $img_src[0];
    $highslide = "<a href='{$img_full}'><img src='{$img_src}' alt='' onclick='return hs.expand(this)' class='highslide' /></a>";
    
    		echo "<li >";
    		echo $highslide;
    		echo "</li>";
    
    	}

    Posso ter errado em alguma coisa, mas a idéia é basicamente esta.

    Criador do tópico Besouro

    (@besouro)

    entendi, sua dica, mas não rolou. deixei assim:

    <?php 
    
    $args = array(
    	'post_type' => 'attachment',
    	'numberposts' => null,
    	'post_status' => null,
    	'post_parent' => $post->ID
    );
    
    $attachments = get_posts($args);
    if ($attachments) {
    	foreach ($attachments as $attachment) {
    		$img_full = wp_get_attachment_url( $id );
    		$img_src = wp_get_attachment_image_src( $id, $size );
    		$img_src = $img_src[0];
    		$highslide = "<a href='{$img_full}'><img src='{$img_src}' alt='teste' onclick='return hs.expand(this)' class='highslide' /></a>";
    
    		echo "<li >";
    		echo $highslide;
    		echo "</li>";
    
    	}
    
    	}
    
     ?>

    Dá uma olhada http://www.feelingeventos.net/site/portifolio-2010
    Preciso que entre nessa galeria que tem as setinhas. Joguei fora também pra testar. Essa imagem que abre tá fora do php, coloquei pra teste, deveriam funcionar assim.

    Tente usar $post->ID no lugar de $id

    Criador do tópico Besouro

    (@besouro)

    Não rolou. Ele não tá pegando nem a url da imagem que será link, nem a do thumb.

    Tá voltando assim, vazia:

    <a href="">
    <img src="" alt="teste" onclick="return hs.expand(this)" class="highslide">
    </a>

    Veja se desta forma resolve seu problema

    <?php
    $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
    foreach ( $attachments as $id => $attachment ) {
    
    	$img_full = wp_get_attachment_url( $id );
    	$img_thumb = wp_get_attachment_image_src( $id, 'thumbnail' );
    	$img_thumb = $img_thumb[0];
    	$img_alt = $attachment->post_excerpt;
    	if ( $img_alt == null )
    		$img_alt = $attachment->post_title;
    
    	$saida = "<li>";
    	$saida .= "<a href='{$img_full}' title='{$img_alt}'><img src='{$img_thumb}' alt='{$img_alt}' class='highslide' onclick='return hs.expand(this)' /></a>";
    	$saida .= "</li>";
    	echo $saida;
    }
    ?>
    Criador do tópico Besouro

    (@besouro)

    Nossa, quase! abriu os thumbs, mas não tá ampliando. Carrega carrega e nada! Ele tá linkando a imagem certa. Que estranho isso!

    Veja se funciona da mesma forma ai contigo: http://www.feelingeventos.net/site/portifolio-2010

    Aqui acontece o mesmo problema que com vc.

    Agora eu acredito que seja algum erro no código do highslide porque o link para a imagem grande está funcionando corretamente.

    Se vc pegar o link e abrir em uma nova janela vc verá que a imagem carrega exatamente como devia.

    Olhei a página do plugin e o parâmetro para funcionar como galeria seria

    onclick="return hs.expand(this, galleryOptions)"

    ou

    onclick="return hs.expand(this, { wrapperClassName: 'my-wrapper-class', align: 'center' })"
    no seucaso não está funcionando desta forma, veja se colocando isso funciona.

    Criador do tópico Besouro

    (@besouro)

    Não funciona, assim ele abre a imagem normal.
    MAs o código anterior deveria funcionar, ele funciona naquela imagem solta que deixei.

    Vou testar outro lighbox, vamos ver.

    Criador do tópico Besouro

    (@besouro)

    cara, não acredita onde estavamos errando!
    tava no lugar errado a class e o onclick, tinha que ser no link, não na imagem

    <?php
    $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
    foreach ( $attachments as $id => $attachment ) {
    
    	$img_full = wp_get_attachment_url( $id );
    	$img_thumb = wp_get_attachment_image_src( $id, 'thumbnail' );
    	$img_thumb = $img_thumb[0];
    	$img_alt = $attachment->post_excerpt;
    	if ( $img_alt == null )
    		$img_alt = $attachment->post_title;
    
    	$saida = "<li>";
    	$saida .= "<a href='{$img_full}' title='{$img_alt}' class='highslide' onclick='return hs.expand(this)'><img src='{$img_thumb}' alt='{$img_alt}'  /></a>";
    	$saida .= "</li>";
    	echo $saida;
    }
    ?>

    Veja: http://www.feelingeventos.net/site/portifolio-2010

    Agora só preciso arrumar o css

    Cara, muito obrigado
    Se quiser, me add no msn: fabio@iluminedesign.com.br

    É verdade nem tinha me ligado nisso.

Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • O tópico ‘Lightbox junto com galeria de thumbs’ está fechado para novas respostas.