0

私の現在の WordPress テーマにはギャラリーが組み込まれています。各ギャラリーには最初/メインのサムネイルが表示され、クリックすると、この特定のギャラリーのコンテンツ全体がシャドウ ボックスに表示されます。私の理想的な目標は、これを変更して、シャドウボックスを直接表示する代わりに、特定のギャラリー コンテンツを含む単一のページに移動する方法を見つけることです。

以下の私の現在のギャラリーコードのように:

    <div id="maincontentwrap">
        <div class="main-sep">
        </div><!-- .main-sep -->
        <div id="contentwrap">  
            <div id="content-gallery" role="main">
                <?php 
                $wp_query = new WP_Query();
                $wp_query->query( array( 'post_type' => 'galleries', 'posts_per_page' => of_get_option('le_gallery_items'), 'paged' => $paged, 'orderby' => 'menu_order', 'order' => 'ASC') );
                $mod = 1;
                while ( $wp_query->have_posts() ) : $wp_query->the_post(); 
                $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order') );
                if(has_post_thumbnail()) {
                    $src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full');
                    $src = $src[0];
                }
                else{
                    foreach ( $attachments as $id => $attachment ) {
                        $src = wp_get_attachment_url( $id );
                    }
                }
                 if ($mod % 3 == 0) {
                    echo ' <div class="gallery-entry-img-last">';
                 }
                 else{
                    echo ' <div class="gallery-entry-img">';
                 }
                 ?>
                <div class="gallery-entry-img-l"><a rel="next" href="<?php echo $src; ?>"><span class="rollover" ></span><img class="blog-entry-img" src="<?php echo get_bloginfo('stylesheet_directory'); ?>/library/tools/timthumb.php?src=<?php echo $src; ?>&amp;w=270&amp;h=198"  alt="<?php get_the_title(); ?>"/></a>
                    <span class="gallery-entry-img-tab"></span>
                </div>
                <span class="gallery-index-title"><?php the_title(); ?></span>
                <div class="hidden-gallery">
                    <?php 
                        $pic_count = 0;
                        foreach ( $attachments as $id => $attachment ) {
                        $pic_count++;
                        $others_src = wp_get_attachment_url( $id );
                    ?>
                        <a rel="next" href="<?php echo $others_src; ?>" title="<?php the_title(); ?>"></a>
                    <?php
                    }
                    ?>
                </div><!-- .hidden-gallery-->
            </div>
            <?php
            $mod++;
            endwhile;
            ?>
            <div style="clear:both;"></div>
            </div>  
        </div><!-- #contentwrap-->
    </div><!-- #maincontentwrap--> 

どうすればこれを達成できるか、誰にもわかりませんか?専門家のアドバイスをいただければ幸いです。

4

1 に答える 1

2

を使用しますwp_get_attachment_link( $id, $size, $permalink, $icon, $text );( http://codex.wordpress.org/Function_Reference/wp_get_attachment_linkを参照)。これにより、添付ページへのリンクが出力されます。したがって、この関数を使用してコードを調整する必要があります。$permalink 引数に値 = 0 を使用すると、リンクによって添付ファイルのページに移動します (値 = 1 ではファイル自体に移動します)。ただし、"shadowbox" はおそらく JavaScript のイベント バインド (アンカーのクリック) によってトリガーされるため、HTML コードをリンクに合わせて調整する必要があることに注意してください。shadowbox のスクリプトのセレクターがクラス名または ID を使用してクリックを検出する場合、リンクのコンテナーの ID またはクラス名を変更して、ターゲット ページが表示されないようにする必要があります。シャドーボックス内。また、使用することもできます(実際には使用する必要があります)wp_deregister_script()このページでは不要であることを考慮して、シャドウボックスを表示するスクリプトの登録を解除します。

于 2012-11-16T08:19:14.673 に答える