2012-02-18 62 views
0

我有一個名爲「縮略圖」的自定義字段,我目前使用它在我的Wordpress網站上顯示我的帖子的縮略圖。我最近買了一個新的模板,似乎無法讓代碼顯示這個工作。我認爲這是因爲新模板正在使用數組。在Wordpress中使用自定義字段縮略圖

目前,我只是把:

<img src="<?php echo get_post_meta($post->ID, Thumbnail, true); ?>"/> 

並顯示完美。所以這裏是我相信我需要在新網站中更改的代碼:

看起來像是在使用數組?但是,我不太瞭解代碼以使其發揮作用。我試圖把我的代碼放在上面最後一行的img標籤中,但很確定我需要改變其他東西。

請幫忙!謝謝。

**更新* *

感謝您的信息@ Ehs4n和@Tim!仍然沒有運氣,但我決定嘗試更簡單的方法,通過刪除檢查數組的代碼部分。我感覺我很接近。這是我現在擁有的。

但仍沒有縮略圖顯示?不知道我缺少什麼,我有一個名爲Thumbnail的自定義字段,並在該帖子的服務器上顯示相應的鏈接。它甚至可以正常工作,當我把在實際的URL中的IMG SRC到的畫面,但是當我把代碼...

<?php echo get_post_meta($post->ID, Thumbnail, true); ?> 

它像它不明白。 Firebug告訴我,src是空的,就像它沒有返回縮略圖自定義字段,因爲它應該是?

下面是整個文件,它是一個包含通過一個小工具來顯示在該網站的索引上的類別佈局。

<?php 
add_action('widgets_init', 'pyre_homepage_1col_load_widgets'); 

function pyre_homepage_1col_load_widgets() 
{ 
    register_widget('Pyre_Homepage_1col_Widget'); 
} 

class Pyre_Homepage_1col_Widget extends WP_Widget { 

    function Pyre_Homepage_1col_Widget() 
    { 
     $widget_ops = array('classname' => 'pyre_homepage_1col', 'description' => 'Homepage 1-column recent posts widget.'); 

     $control_ops = array('id_base' => 'pyre_homepage_1col-widget'); 

     $this->WP_Widget('pyre_homepage_1col-widget', 'Avenue Theme: Home 1-column', $widget_ops, $control_ops); 
    } 

    function widget($args, $instance) 
    { 
     extract($args); 

     $title = $instance['title']; 
     $post_type = 'all'; 
     $categories = $instance['categories']; 
     $posts = $instance['posts']; 
     $images = true; 
     $rating = true; 
     $show_excerpt = isset($instance['show_excerpt']) ? 'true' : 'false'; 

     echo $before_widget; 
     ?> 

     <?php 
     $post_types = get_post_types(); 
     unset($post_types['page'], $post_types['attachment'], $post_types['revision'], $post_types['nav_menu_item']); 

     if($post_type == 'all') { 
      $post_type_array = $post_types; 
     } else { 
      $post_type_array = $post_type; 
     } 
     ?> 

     <div class="block full"> 

      <h3><a href="<?php echo get_category_link($categories); ?>"><?php echo $title; ?></a> <span class="arrows">&raquo;</span></h3> 

      <?php 
      $recent_posts = new WP_Query(array(
       'showposts' => $posts, 
       'cat' => $categories, 
      )); 
      ?> 
      <?php 
      $big_count = round($posts/4); 
      if(!$big_count) { $big_count = 1; } 
      ?> 
      <?php $counter = 1; while($recent_posts->have_posts()): $recent_posts->the_post(); ?> 
      <?php 
      if(has_post_format('video') || has_post_format('audio') || has_post_format('gallery')) { 
       $icon = '<span class="' . get_post_format($post->ID) . '-icon"></span>'; 
      } else { 
       $icon = ''; 
      } 
      ?> 
      <?php if($counter <= $big_count): ?> 
      <?php if($counter == $big_count) { $last = 'block-item-big-last'; } else { $last = ''; }?> 

     <!-- Movies Category --> 
     <?php if (in_category('movies')): ?> 
     <div class="block-item-big-Movies <?php echo $last; ?>"> 
       <div class="block-image"><a href='<?php the_permalink(); ?>' title='<?php the_title(); ?> movie review'><img src="<?php echo get_post_meta($post->ID, Thumbnail, true); ?>"/></a><?php echo $icon; ?></div> 
       <h2><a href='<?php the_permalink(); ?>' title='<?php the_title(); ?> movie review'><?php the_title(); ?></a></h2> 
       <span class="block-meta"><?php the_time('F j, Y'); ?>, <?php comments_popup_link(); ?></span> 
       <?php if($show_excerpt == 'true'): ?><p><?php echo string_limit_words(get_the_excerpt(), 15); ?> ...</p><?php endif; ?> 
      </div> 
     <!-- END Movies Category --> 
     <!-- Music Category --> 
     <?php elseif (in_category('music')): ?> 
     <div class="block-item-big <?php echo $last; ?>"> 
       <?php if($images && has_post_thumbnail()): ?> 
       <?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'widget-image'); ?> 
       <div class="block-image"><a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><img src="<?php echo $image[0]; ?>" alt="<?php the_title(); ?>" width='290' height='160' /></a><?php echo $icon; ?></div> 
       <?php else: ?> 
       <div class="block-image"><a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php bloginfo('template_directory'); ?>/images/thumbnail.png&w=290&h=160" alt="<?php the_title(); ?>" width='290' height='160' /></a><?php echo $icon; ?></div> 
       <?php endif; ?> 
       <h2><a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><?php the_title(); ?></a></h2> 
       <span class="block-meta"><?php the_time('F j, Y'); ?>, <?php comments_popup_link(); ?></span> 
       <?php if($show_excerpt == 'true'): ?><p><?php echo string_limit_words(get_the_excerpt(), 15); ?> ...</p><?php endif; ?> 
      </div> 
     <!-- END Music Category --> 
     <!-- Else Default Display --> 
     <?php else: ?> 
     <div class="block-item-big <?php echo $last; ?>"> 
       <?php if($images && has_post_thumbnail()): ?> 
       <?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'widget-image'); ?> 
       <div class="block-image"><a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><img src="<?php echo $image[0]; ?>" alt="<?php the_title(); ?>" width='290' height='160' /></a><?php echo $icon; ?></div> 
       <?php else: ?> 
       <div class="block-image"><a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php bloginfo('template_directory'); ?>/images/thumbnail.png&w=290&h=160" alt="<?php the_title(); ?>" width='290' height='160' /></a><?php echo $icon; ?></div> 
       <?php endif; ?> 
       <h2>MUSIC<a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><?php the_title(); ?></a></h2> 
       <span class="block-meta"><?php the_time('F j, Y'); ?>, <?php comments_popup_link(); ?></span> 
       <?php if($show_excerpt == 'true'): ?><p><?php echo string_limit_words(get_the_excerpt(), 15); ?> ...</p><?php endif; ?> 
      </div> 
     <!-- END Normal Display --> 
      <?php endif; ?> 


      <?php else: ?> 
      <div class="block-item-small"> 
       <?php if($images && has_post_thumbnail()): ?> 
       <?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'widget-image-thumb'); ?> 
       <div class="block-image"><a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><img src="<?php echo $image[0]; ?>" alt="<?php the_title(); ?>" width='50' height='50' /></a><?php echo $icon; ?></div> 
       <?php else: ?> 
       <div class="block-image"><a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php bloginfo('template_directory'); ?>/images/thumbnail.png&w=50&h=50" alt="<?php the_title(); ?>" width='50' height='50' /></a><?php echo $icon; ?></div> 
       <?php endif; ?> 
       <h2><a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><?php the_title(); ?></a></h2> 
       <span class="block-meta"><?php the_time('F j, Y'); ?>, <?php comments_popup_link(); ?></span> 
      </div> 
      <?php endif; ?> 
      <?php $counter++; endwhile; ?> 

     </div> 

     <?php 
     echo $after_widget; 
    } 

    function update($new_instance, $old_instance) 
    { 
     $instance = $old_instance; 

     $instance['title'] = $new_instance['title']; 
     $instance['post_type'] = 'all'; 
     $instance['categories'] = $new_instance['categories']; 
     $instance['posts'] = $new_instance['posts']; 
     $instance['show_images'] = true; 
     $instance['show_rating'] = true; 
     $instance['show_excerpt'] = $new_instance['show_excerpt']; 

     return $instance; 
    } 

    function form($instance) 
    { 
     $defaults = array('title' => 'Recent Posts', 'post_type' => 'all', 'categories' => 'all', 'posts' => 4, 'show_excerpt' => null); 
     $instance = wp_parse_args((array) $instance, $defaults); ?> 
     <p> 
      <label for="<?php echo $this->get_field_id('title'); ?>">Title:</label> 
      <input class="widefat" style="width: 216px;" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo $instance['title']; ?>" /> 
     </p> 

     <p> 
      <label for="<?php echo $this->get_field_id('categories'); ?>">Filter by Category:</label> 
      <select id="<?php echo $this->get_field_id('categories'); ?>" name="<?php echo $this->get_field_name('categories'); ?>" class="widefat categories" style="width:100%;"> 
       <option value='all' <?php if ('all' == $instance['categories']) echo 'selected="selected"'; ?>>all categories</option> 
       <?php $categories = get_categories('hide_empty=0&depth=1&type=post'); ?> 
       <?php foreach($categories as $category) { ?> 
       <option value='<?php echo $category->term_id; ?>' <?php if ($category->term_id == $instance['categories']) echo 'selected="selected"'; ?>><?php echo $category->cat_name; ?></option> 
       <?php } ?> 
      </select> 
     </p> 

     <p> 
      <label for="<?php echo $this->get_field_id('posts'); ?>">Number of posts:</label> 
      <input class="widefat" style="width: 30px;" id="<?php echo $this->get_field_id('posts'); ?>" name="<?php echo $this->get_field_name('posts'); ?>" value="<?php echo $instance['posts']; ?>" /> 
     </p> 

     <p> 
      <input class="checkbox" type="checkbox" <?php checked($instance['show_excerpt'], 'on'); ?> id="<?php echo $this->get_field_id('show_excerpt'); ?>" name="<?php echo $this->get_field_name('show_excerpt'); ?>" /> 
      <label for="<?php echo $this->get_field_id('show_excerpt'); ?>">Show excerpt</label> 
     </p> 
    <?php } 
} 
?> 

回答

0

print_r($image)中查找是否Image是一個數組。使用image[0]的結果是什麼?

+0

對不起,我不熟悉print_r的語法,但我實際上已將代碼更改爲不查找數組,只是嘗試將它傳遞給名爲縮略圖的自定義字段。看看我的原始問題,我更新了它。 – 2012-02-20 01:08:26

+0

'print_r'很容易,你會喜歡它。只需鍵入'print_r($ var)',var'的內容就會很好地顯示出來,而不管類型如何 - 數組和對象被擴展,並且其他所有內容都正常顯示。 – Tim 2012-02-20 15:57:02

0

如果您正在使用自定義字段來存儲縮略圖路徑,爲什麼您與模板中使用的代碼混淆。

,您仍然可以使用舊代碼來獲取圖像

<?php echo get_post_meta($post->ID, Thumbnail, true); ?> 

看你的模板的代碼,它使用WordPress的功能wp_get_attachment_image_src()這需要三個參數,$attachement_id - 通過該媒體的ID,$size - 媒體大小/圖像大小顯示&第三個可選$icon顯示一個圖標來表示附件。在這裏,您傳遞圖片集的$ attachment_id作爲帖子縮略圖和大小。該函數依次返回一個包含url,width和height的數組,因此使用$image[0]將返回圖像的URL,這很好。

如果仍未被顯示的圖像,你需要確認你是否已經連接圖像後縮略圖在您的文章,而且$images可變回報trueif條款。

+0

感謝您的一些見解。我決定只是刪除那個wp_get_attachment_img部分,因爲我沒有附加這個意義上的圖像?我通過新文章中的上傳功能上傳它們,但只需複製它在服務器上提供給我的鏈接URL,然後將該URL粘貼到我創建的稱爲縮略圖的自定義字段中。反正看看我原來的問題,我更新了它。 – 2012-02-20 01:10:38

+0

只是一個錯字。它應該是 <?php echo get_post_meta($ post-> ID,'Thumbnail',true); ?> 而不是 <?php echo get_post_meta($ post-> ID,Thumbnail,true); ?> 注意縮略圖周圍的引號。 – Ehs4n 2012-02-26 04:07:43

相關問題