当前位置:首页 > CMS教程 > WordPress > 列表

wordpress自动调用文章缩略图的方法总结

发布:smiling 来源: PHP粉丝网  添加日期:2014-06-21 16:02:32 浏览: 评论:0 

一、自动显示文章第一张图片

在当前使用的主题模板的functions.php文件<?php和?>之前添加以下代码:

  1. function catch_that_image() { 
  2.       global $post$posts
  3.       $first_img = ''
  4.       ob_start(); 
  5.       ob_end_clean(); 
  6.       $output = preg_match_all('/<img.+src=['"]([^'"]+)['"].*>/i', $post->post_content, $matches); 
  7.       $first_img = $matches [1] [0]; 
  8.       if(emptyempty($first_img)){ //Defines a default image 
  9.         $first_img = "/images/default.jpg"
  10.       } 
  11.       return $first_img
  12.     } 

在当前主题模板的index.php文件的内容代码前或后添加以下代码:

<?php echo catch_that_image() ?>

二、文章列表页自动调用文章缩略图

在外观–编辑里头找到functions.php,加入以下这个函数:

  1. function emtx_auto_thumbnail($pID,$thumb='thumbnail') {  
  2. $blogimg = FALSE;  
  3.  if (has_post_thumbnail()) {// 判断该文章是否已经设置了“特色图像”,如果有则直接显示该特色图像的缩略图  
  4.       $blogimg = wp_get_attachment_image_src(get_post_thumbnail_id($pID),$thumb); 
  5.       $blogimg = $blogimg[0]; 
  6.  } elseif ($postimages = get_children("post_parent=$pID&post_type=attachment&post_mime_type=image&numberposts=0")) {//如果文章没有设置特色图像,则查找文章内是否有上传图片 
  7.     foreach($postimages as $postimage) { 
  8.        $blogimg = wp_get_attachment_image_src($postimage->ID, $thumb); 
  9.        $blogimg = $blogimg[0]; 
  10.       } 
  11.      } elseif (preg_match('/<img [^>]*src=["|']([^"|']+)/i', get_the_content(), $match) != FALSE) { 
  12.       $blogimg = $match[1]; 
  13.      }  
  14.   if($blogimg) {  
  15. $blogimg = '<a href="'. get_permalink().'"><img src="'.$blogimg.'" alt="'.get_the_title().'"  class="alignleft wp-post-image"  /></a>'
  16.       return $blogimg
  17.    
  18.  }  

然后在相应的模板文件里面调用缩略图的地方做个修改,把原来调用the_post_thumbnail的地方按照实际需求改为诸如下面这样的代码即可:

  1. <?php if(emtx_auto_thumbnail($post->ID) ) {  
  2.   echo emtx_auto_thumbnail($post->ID); 
  3. } ?> 

三、后台所有文章列表显示缩略图

打开你主题的functions.php文件添加如下代码:

  1. if ( !function_exists('fb_AddThumbColumn') && function_exists('add_theme_support') ) { 
  2.      
  3.     // 在文章列表页与页面列表页添加缩略图列表 
  4.     add_theme_support('post-thumbnails'array'post''page' ) ); 
  5.      
  6.     function fb_AddThumbColumn($cols) { 
  7.          
  8.         $cols['thumbnail'] = __('Thumbnail'); 
  9.          
  10.         return $cols
  11.     } 
  12.      
  13.     function fb_AddThumbValue($column_name$post_id) { 
  14.              
  15.             $width = (int) 35; 
  16.             $height = (int) 35; 
  17.              
  18.             if ( 'thumbnail' == $column_name ) { 
  19.                 // thumbnail of WP 2.9 
  20.                 $thumbnail_id = get_post_meta( $post_id'_thumbnail_id', true ); 
  21.                 // image from gallery 
  22.                 $attachments = get_children( array('post_parent' => $post_id'post_type' => 'attachment''post_mime_type' => 'image') ); www.111Cn.net 
  23.                 if ($thumbnail_id
  24.                     $thumb = wp_get_attachment_image( $thumbnail_idarray($width$height), true ); 
  25.                 elseif ($attachments) { 
  26.                     foreach ( $attachments as $attachment_id => $attachment ) { 
  27.                         $thumb = wp_get_attachment_image( $attachment_idarray($width$height), true ); 
  28.                     } 
  29.                 } 
  30.                     if ( isset($thumb) && $thumb ) { 
  31.                         echo $thumb
  32.                     } else { 
  33.                         echo __('None'); 
  34.                     } 
  35.             } 
  36.     } 
  37.      
  38.     // 文章页调用 
  39.     add_filter( 'manage_posts_columns''fb_AddThumbColumn' ); 
  40.     add_action( 'manage_posts_custom_column''fb_AddThumbValue', 10, 2 ); 
  41.      
  42.     // 页面调用 
  43.     add_filter( 'manage_pages_columns''fb_AddThumbColumn' ); 
  44.     add_action( 'manage_pages_custom_column''fb_AddThumbValue', 10, 2 ); 

Tags: wordpress文章缩略图

分享到:

相关文章