2012-01-19 9 views
0

目标效果是:单击放大图标时,它使用“Fancybox”插件在自定义字段中显示大尺寸图像(用逗号分隔的多个图像) et_gallery”。使用自定义字段中的图片的放大功能“et_gallery”

现在放大镜根本不起作用。 http://heidixu.com/#!/?page_id=4

它工作正常。然后我意外地用早期版本替换了最终代码。所以我现在有的版本是非常接近,但有些东西是不正确或缺少,我不知道什么,因为我不是一个专家在PHP ...

这是该页:http://heidixu.com/#!/?page_id=4和其他每页缩略图的工作原理是一样的。

这是我目前的PHP代码版本已编辑:

<?php 
/* 
Template Name: Portfolio Page 
*/ 
?> 
<?php 
$et_ptemplate_settings = array(); 
$et_ptemplate_settings = maybe_unserialize(get_post_meta($post->ID,'et_ptemplate_settings',true)); 

$fullwidth = true; 
$et_ptemplate_showtitle = isset($et_ptemplate_settings['et_ptemplate_showtitle']) ? (bool) $et_ptemplate_settings['et_ptemplate_showtitle'] : false; 
$et_ptemplate_showdesc = isset($et_ptemplate_settings['et_ptemplate_showdesc']) ? (bool) $et_ptemplate_settings['et_ptemplate_showdesc'] : false; 
$et_ptemplate_detect_portrait = isset($et_ptemplate_settings['et_ptemplate_detect_portrait']) ? (bool) $et_ptemplate_settings['et_ptemplate_detect_portrait'] : false; 

$gallery_cats = isset($et_ptemplate_settings['et_ptemplate_gallerycats']) ? (array) $et_ptemplate_settings['et_ptemplate_gallerycats'] : array(); 
$et_ptemplate_gallery_perpage = isset($et_ptemplate_settings['et_ptemplate_gallery_perpage']) ? (int) $et_ptemplate_settings['et_ptemplate_gallery_perpage'] : 12; 

$et_ptemplate_portfolio_size = isset($et_ptemplate_settings['et_ptemplate_imagesize']) ? (int) $et_ptemplate_settings['et_ptemplate_imagesize'] : 2; 

$et_ptemplate_portfolio_class = ''; 
if ($et_ptemplate_portfolio_size == 1) $et_ptemplate_portfolio_class = ' et_portfolio_small'; 
if ($et_ptemplate_portfolio_size == 3) $et_ptemplate_portfolio_class = ' et_portfolio_large'; 
?> 

<?php get_header(); ?> 

<div class="single_container et_shadow"> 
    <div class="single_content"> 
     <div class="entry post clearfix"> 
      <?php get_template_part('loop','page'); ?> 
      <div id="et_pt_portfolio_gallery" class="clearfix<?php echo $et_ptemplate_portfolio_class; ?>"> 
       <?php $gallery_query = ''; 
       $portfolio_count = 1; 
       $et_open_row = false; 
       if (!empty($gallery_cats)) $gallery_query = '&cat=' . implode(",", $gallery_cats); 
       else echo '<!-- gallery category is not selected -->'; ?> 
       <?php 
        $et_paged = is_front_page() ? get_query_var('page') : get_query_var('paged'); 
       ?> 
       <?php query_posts("showposts=$et_ptemplate_gallery_perpage&paged=" . $et_paged . $gallery_query); ?> 
       <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

        <?php $width = 260; 
        $height = 170; 

        if ($et_ptemplate_portfolio_size == 1) { 
         $width = 140; 
         $height = 94; 
         $et_portrait_height = 170; 
        } 
        if ($et_ptemplate_portfolio_size == 2) $et_portrait_height = 315; 
        if ($et_ptemplate_portfolio_size == 3) { 
         $width = 430; 
         $height = 283; 
         $et_portrait_height = 860; 
        }      

        $et_auto_image_detection = false; 
        if (has_post_thumbnail($post->ID) && $et_ptemplate_detect_portrait) { 
         $wordpress_thumbnail = get_post(get_post_thumbnail_id($post->ID)); 
         $wordpress_thumbnail_url = $wordpress_thumbnail->guid; 

         if (et_is_portrait($wordpress_thumbnail_url)) $height = $et_portrait_height; 
        } 

        $titletext = get_the_title(); 
        $et_portfolio_title = get_post_meta($post->ID,'et_portfolio_title',true) ? get_post_meta($post->ID,'et_portfolio_title',true) : get_the_title(); 
        $et_videolink = get_post_meta($post->ID,'et_videolink',true) ? get_post_meta($post->ID,'et_videolink',true) : ''; 

        $thumbnail = get_thumbnail($width,$height,'',$titletext,$titletext,true,'et_portfolio'); 
        $thumb = $thumbnail["thumb"]; 

        if ($et_ptemplate_detect_portrait && $thumbnail["use_timthumb"] && et_is_portrait($thumb)) { 
         $height = $et_portrait_height; 
        } ?> 

        <?php if ($portfolio_count == 1 || ($et_ptemplate_portfolio_size == 2 && (!$fullwidth && ($portfolio_count+1) % 2 == 0)) || ($et_ptemplate_portfolio_size == 3 && (($portfolio_count+1) % 2 == 0))) { 
         $et_open_row = true; ?> 
         <div class="et_pt_portfolio_row clearfix"> 
        <?php } ?> 

          <div class="et_pt_portfolio_item"> 
           <?php if ($et_ptemplate_showtitle) { ?> 
            <h2 class="et_pt_portfolio_title"><?php echo $et_portfolio_title; ?></h2> 
           <?php } ?> 
           <div class="et_pt_portfolio_entry<?php if ($height == $et_portrait_height) echo ' et_portrait_layout'; ?>"> 
            <div class="et_pt_portfolio_image<?php if ($et_videolink <> '') echo ' et_video'; ?>"> 
             <?php print_thumbnail($thumb, $thumbnail["use_timthumb"], $titletext, $width, $height, ''); ?> 

             <?php $gallery = explode(',', get_post_meta($post->ID, 'et_gallery', true)); 
foreach ($gallery as $item) { ?> 
<a class="fancybox" href="<?php echo $item; ?>" style="display: none;" rel="gallery[<?php echo $post->ID; ?>]" title="<?php the_title(); ?>"></a> 
<?php } ?> 

             <span class="et_pt_portfolio_overlay"></span> 

             <a class="et_portfolio_zoom_icon <?php if ($et_videolink <> '') echo 'et_video_lightbox'; else echo('fancybox'); ?>" title="<?php the_title(); ?>"<?php if ($et_videolink == '') echo ' rel="gallery[' . $post->ID . '"]'; ?> href="<?php if ($et_videolink <> '') echo $et_videolink; else echo($thumbnail['fullpath']); ?>"><?php esc_html_e('Zoom in','Sky'); ?></a> 
             <a class="et_portfolio_more_icon" href="<?php the_permalink(); ?>"><?php esc_html_e('Read more','Sky'); ?></a> 
            </div> <!-- end .et_pt_portfolio_image --> 
           </div> <!-- end .et_pt_portfolio_entry --> 
           <?php if ($et_ptemplate_showdesc) { ?> 
            <p><?php truncate_post(90); ?></p> 
           <?php } ?> 
          </div> <!-- end .et_pt_portfolio_item --> 

        <?php if (($et_ptemplate_portfolio_size == 2 && !$fullwidth && $portfolio_count % 2 == 0) || ($et_ptemplate_portfolio_size == 3 && ($portfolio_count % 2 == 0))) { 
         $et_open_row = false; ?> 
         </div> <!-- end .et_pt_portfolio_row --> 
        <?php } ?> 

        <?php if (($et_ptemplate_portfolio_size == 2 && $fullwidth && $portfolio_count % 3 == 0) || ($et_ptemplate_portfolio_size == 1 && !$fullwidth && $portfolio_count % 3 == 0) || ($et_ptemplate_portfolio_size == 1 && $fullwidth && $portfolio_count % 5 == 0)) { ?> 
         </div> <!-- end .et_pt_portfolio_row --> 
         <div class="et_pt_portfolio_row clearfix"> 
         <?php $et_open_row = true; ?> 
        <?php } ?> 

       <?php $portfolio_count++; 
       endwhile; ?> 
        <?php if ($et_open_row) { 
         $et_open_row = false; ?> 
         </div> <!-- end .et_pt_portfolio_row --> 
        <?php } ?> 
        <div class="page-nav clearfix"> 
         <?php if (function_exists('wp_pagenavi')) { wp_pagenavi(); } 
         else { ?> 
          <?php get_template_part('includes/navigation'); ?> 
         <?php } ?> 
        </div> <!-- end .entry --> 
       <?php else : ?> 
        <?php if ($et_open_row) { 
         $et_open_row = false; ?> 
         </div> <!-- end .et_pt_portfolio_row --> 
        <?php } ?> 
        <?php get_template_part('includes/no-results'); ?> 
       <?php endif; wp_reset_query(); ?> 

       <?php if ($et_open_row) { 
        $et_open_row = false; ?> 
        </div> <!-- end .et_pt_portfolio_row --> 
       <?php } ?> 
      </div> <!-- end #et_pt_portfolio_gallery --> 
     </div> <!-- end .entry --> 
    </div> <!-- end .single_content --> 
    <div class="content-bottom"></div> 
</div> <!-- end .single_container --> 

<?php if (get_option('sky_show_pagescomments') == 'on') comments_template('', true); ?> 

可以在任何PHP的专家,请看一看。非常感谢。

-Heidi

回答

0

到目前为止,当你点击放大镜图标,它会产生这样的错误:

Error: a is undefined 
Source File: http://heidixu.com/wp-content/themes/Sky/epanel/page_templates/js/fancybox/jquery.fancybox-1.3.4.pack.js?ver=1.3.4 
Line: 19 

它看起来像连接(<a>标签)未绑定到,无论它的fancybox有指定的类。

我想相信你生成的代码是不正确的;你有这样的HTML:

<a href="http://heidixu.com/wp-content/uploads/2011/12/x3_big.jpg" ]="" rel="gallery[63" title="X3 Network" class="et_portfolio_zoom_icon fancybox" style="opacity: 0; display: inline;">Zoom in</a> 

,不知是否该部分专门

... ]="" rel="gallery[ .... 

...正在创建错误。我无法找到你的PHP代码的哪些部分产生这些(错位?)括号。

+0

这部分是固定的。 <?php if($ et_videolink =='')echo'rel =“gallery ['。$ post-> ID。'”]'; ?>双引号前的括号现在已关闭。但它仍然不会显示大图像。 – kikix2125

+0

因为现在它产生: 错误:语法错误,无法识别的表达式:[rel = gallery [63]] 源文件:http:// heidixu,因此您无法在[rel = gallery [63]]括号中包含属性。 com/wp-includes/js/jquery/jquery.js?ver = 1.7.1 Line:3 – JFK

+0

我想你需要rel =“gallery63”而不是rel =“gallery [63]”,但是你打开/关闭的方式你的括号实际上是生成[rel = gallery [63]] – JFK