【发布时间】:2012-01-27 19:07:24
【问题描述】:
我想为客户的 wordpress 网站创建更具体的 jquery 库!
想法是:
我们有页面“画廊”女巫将使用页面模板“画廊-tpl”,比方说!
在页面模板“Gallery-tpl”中,我在标题中有一个大图片,女巫是第一个帖子附件的全尺寸!
-
我在正文中的某些地方有
,其中包含所有附件的无序列表缩略图大小!
此列表必须是一排滑块
我希望当点击缩略图时,标题中的大图像会随着点击缩略图的完整版本而改变
我在这篇帖子Get Attachments to post找到了如何获取第一个附件以及如何获取所有附件!
我找到了一种用 jQuery 替换图像的方法。
然后我尝试将所有代码组合在一起,但它仅适用于一张图片
这是我的“Gallery-tpl”
<?php /** Template Name: Gallery original: http://www.rlmseo.com/blog/get-images-attached-to-post/ */ function bdw_get_first_image() { // Get the post ID $iPostID = $post->ID; // Get images for this post $arrImages =& get_children('post_type=attachment&post_mime_type=image&post_parent=' . $iPostID ); // If images exist for this page if($arrImages) { // Get array keys representing attached image numbers $arrKeys = array_keys($arrImages); /******BEGIN BUBBLE SORT BY MENU ORDER************/ // Put all image objects into new array with standard numeric keys (new array only needed while we sort the keys) foreach($arrImages as $oImage) { $arrNewImages[] = $oImage; } // Bubble sort image object array by menu_order TODO: Turn this into std "sort-by" function in functions.php for($i = 0; $i < sizeof($arrNewImages) - 1; $i++) { for($j = 0; $j < sizeof($arrNewImages) - 1; $j++) { if((int)$arrNewImages[$j]->menu_order > (int)$arrNewImages[$j + 1]->menu_order) { $oTemp = $arrNewImages[$j]; $arrNewImages[$j] = $arrNewImages[$j + 1]; $arrNewImages[$j + 1] = $oTemp; } } } // Reset arrKeys array $arrKeys = array(); // Replace arrKeys with newly sorted object ids foreach($arrNewImages as $oNewImage) { $arrKeys[] = $oNewImage->ID; } /******END BUBBLE SORT BY MENU ORDER**************/ // Get the first image attachment $iNum = $arrKeys[0]; // Get the thumbnail url for the attachment $sThumbUrl = wp_get_attachment_thumb_url($iNum); // UNCOMMENT THIS IF YOU WANT THE FULL SIZE IMAGE INSTEAD OF THE THUMBNAIL $sImageUrl = wp_get_attachment_url($iNum); // Build the <img> string $sImgString = '<a href="' .$sImageUrl . '" class="btw_fullimage">' . '<img src="' . $sImageUrl . '" width="600" height="200" alt="Big Image" title="Big Image" />' . '</a>'; // Print the image echo $sImgString; } } function bdw_get_images() { // Get the post ID $iPostID = $post->ID; // Get images for this post $arrImages =& get_children('post_type=attachment&post_mime_type=image&post_parent=' . $iPostID ); // If images exist for this page if($arrImages) { // Get array keys representing attached image numbers $arrKeys = array_keys($arrImages); /******BEGIN BUBBLE SORT BY MENU ORDER************/ // Put all image objects into new array with standard numeric keys (new array only needed while we sort the keys) foreach($arrImages as $oImage) { $arrNewImages[] = $oImage; } // Bubble sort image object array by menu_order TODO: Turn this into std "sort-by" function in functions.php for($i = 0; $i < sizeof($arrNewImages) - 1; $i++) { for($j = 0; $j < sizeof($arrNewImages) - 1; $j++) { if((int)$arrNewImages[$j]->menu_order > (int)$arrNewImages[$j + 1]->menu_order) { $oTemp = $arrNewImages[$j]; $arrNewImages[$j] = $arrNewImages[$j + 1]; $arrNewImages[$j + 1] = $oTemp; } } } // Reset arrKeys array $arrKeys = array(); // Replace arrKeys with newly sorted object ids foreach($arrNewImages as $oNewImage) { $arrKeys[] = $oNewImage->ID; } /******END BUBBLE SORT BY MENU ORDER**************/ // izpolzvai do ili for echo '<ul id="btw_gallery">'; for($i = 0; $i < sizeof($arrNewImages) - 1; $i++) { // Get the first image attachment $iNum = $arrKeys[$i]; // Get the thumbnail url for the attachment $sThumbUrl = wp_get_attachment_thumb_url($iNum); // UNCOMMENT THIS IF YOU WANT THE FULL SIZE IMAGE INSTEAD OF THE THUMBNAIL $sImageUrl = wp_get_attachment_url($iNum); // Build the <img> string $sImgString = '<img src="' . $sThumbUrl . '" alt="Thumbnail Image" title="Thumbnail Image" class="btw_thumb" />'; // Print the image echo '<li>'.$sImgString.'</li>'; } echo '</ul>'; echo ' <script> $("#btw_gallery li img").live("click", function() { $("a.btw_fullimage").attr("href", \''.$sImageUrl.'\').attr("title", this.title); $(".btw_fullimage img").attr("src", \''.$sImageUrl.'\').attr("alt", this.alt).attr("title", this.title); }); </script> '; } } get_header(); ?> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <div id="primary"> <div id="content" role="main"> <?php while ( have_posts() ) : the_post(); ?> <?php bdw_get_first_image(); ?> <?php get_template_part( 'content', 'page' ); ?> <?php bdw_get_images(); ?> <?php endwhile; // end of the loop. ?> <hr /> </div><!-- #content --> </div><!-- #primary --> <?php get_footer(); ?>我相信有更正确和专业的方法可以做到这一点,它会奏效!
如果有人可以帮助我,请回答我!
【问题讨论】:
标签: jquery wordpress wordpress-theming