标题WP plugin: Post Image
日期:    作者:   来源:
文章打印自:
访问文章完全地址:
头部广告
插件使用说明

参数

 

default_image 
(string) 当文章没有图片显示的时候的图片默认链接.
use_thumb
(boolean) 显示图片缩略图.设置TRUE (1)为使用缩略图,FALSE (0)为否.默认为 FALSE (0).
img_tag
(boolean) 在标签<img>中显示图片. 插件将自动分配给图片标题,alt、宽度、高度.设置FALSE (0) 将显示图片原始链接,默认设置为Default is TRUE (1) .
css_class
(string) 提供给标签 <img>的CSS类名.用这个美化你的图片格式,默认设置名为'post-image'.
customkey
(string) 图片“attachment”自定义字段名.用这个字段名的值可以越过帖子里面的其他图片附件或者默认图片. 默认设置为‘post-image’.
display
(boolean)是否显示图片或者用在其他代码中返回.设置为FALSE (0) 为返回.默认为TRUE (1). 

实例

<?php post_image(); ?>

没有图片的文章没有默认图片;显示图片没有缩略图;显示在标签<img>中;用css 类‘post-images’。


 

<?php post_image('/blog/wp-content/images/post.jpg', true); ?>

设置 ‘/blog/wp-content/images/post.jpg’ 为默认图片;显示附件缩略图;显示在标签<img>中;用css 类‘post-images’.


 

<a href="<?php the_permalink(); ?>"><img src="<?php post_image('/images/posticon.png', false, false); ?>" width="32" height="32" /></a>

 显示图片链接为帖子的永久链接;设置‘/images/posticon.png’为默认图片;不显示缩略图;显示原始链接无标签。


 

<?php $thumb = szub_post_image('use_thumb=1&display=0'); ?>
<?php if($thumb) : ?>

<p><a href="<?php the_permalink(); ?>"><?php echo $thumb; ?></a></p>
<?php endif; ?>

 用szub_post_image()去分配图片附件缩略图(显示为0关闭),如果不存在链接文章链接。

 

 

 

 

 

 

post-image.php 源文件
PHP代码
  1. <?php    
  2. /*   
  3. Plugin Name: Post Image   
  4. Plugin URI: http://guff.szub.net/post-image   
  5. Description: Display an image 'attached' to each post. Use post_image() or szub_post_image() in The Loop.   
  6. Version: R1.1.1   
  7. Author: Kaf Oseo   
  8. Author URI: http://szub.net/   
  9.  
  10.     Copyright (c) 2006, 2007 Kaf Oseo (http://szub.net)   
  11.     Post Image is released under the GNU General Public License (GPL)   
  12.     http://www.gnu.org/licenses/gpl.txt   
  13.  
  14.     This is a WordPress 2 plugin (http://wordpress.org).   
  15.  
  16. ~Changelog:   
  17. R1.1.1 (Jan-04-2007)   
  18. Missed this bug fix: Avoid displaying "broken" img tag when no image   
  19. exists.   
  20.  
  21. R1.1 (Jan-04-2007)   
  22. You can specify an image attachment to use by inserting 'post-image'   
  23. (or whatever is set for the 'customkey' parameter) somewhere in the   
  24. (upload) title field. Hit a few buggy bits such as with 'thumbnail'   
  25. filenames for language localization, and implemented pseudo-caching   
  26. on multi-post queries.   
  27.  
  28. R1 (Mar-17-2006)   
  29. Along with bug swattings from 0.1 (beta), the following changes and   
  30. features provided with this full release: new query_string argument   
  31. wrapper function (szub_post_image()); override an attachment and/or   
  32. $default_image for individual posts through a custom field (default   
  33. key: post-image); if $img_tag is set to true/1 and display false/0,   
  34. now returns complete <img> element (previously it returned only the   
  35. image's url). Tentative support for WordPress 2.1.   
  36. */    
  37.   
  38. function szub_post_image($args='') {   
  39.     parse_str($args);   
  40.     if( !isset($default_image) ) $default_image = '';   
  41.     if( !isset($use_thumb) ) $use_thumb = false;   
  42.     if( !isset($img_tag) ) $img_tag = true;   
  43.     if( !isset($css_class) ) $css_class = 'post-image';   
  44.     if( !isset($customkey) ) $customkey = 'post-image';   
  45.     if( !isset($display) ) $display = true;   
  46.  
  47.     return post_image($default_image, $use_thumb, $img_tag, $css_class, $customkey, $display);   
  48.  
  49.  
  50. function post_image($default_image='', $use_thumb=false, $img_tag=true, $css_class='post-image', $customkey='post-image', $display=true) {   
  51.     global $post, $posts, $wp_version, $wpdb;   
  52.     global $post_image_attachments;   
  53.  
  54.     if( empty($post) )   
  55.         return;   
  56.  
  57.     if( !empty($posts) ) {   
  58.         foreach($posts as $apost) {   
  59.             if( $posts[0] != $apost )   
  60.                 $IN_ids .= ',';   
  61.             $IN_ids .= (int) $apost->ID;   
  62.         }   
  63.     }   
  64.  
  65.     if( !empty($default_image) ) {   
  66.         $img_url = $default_image;   
  67.         $img_title = apply_filters('the_title', $post->post_title);   
  68.     }   
  69.  
  70.     $post_custom = get_post_custom($post->ID);   
  71.     $meta_value = $post_custom["$customkey"][0];   
  72.  
  73.     if( $meta_value ) {   
  74.         $img_url = $meta_value;   
  75.         $img_title = apply_filters('the_title', $post->post_title);   
  76.     } else {   
  77.         if( empty($post_image_attachments) ) {   
  78.             $record = ( $wp_version < 2.1 ) ? 'post_status' : 'post_type';   
  79.             $post_image_attachments = @$wpdb->get_results("SELECT ID, post_parent, post_title, post_content, guid FROM $wpdb->posts WHERE post_parent IN($IN_ids) AND $record = 'attachment' AND post_mime_type LIKE '%image%' ORDER BY post_date ASC");   
  80.         }   
  81.  
  82.         foreach( $post_image_attachments as $attachment ) {   
  83.             if( $post->ID == $attachment->post_parent ) {   
  84.                     if( !$first_attachment ) {   
  85.                         $img_url = $attachment->guid;   
  86.                         $img_title = apply_filters('the_title', $attachment->post_title);   
  87.                         $first_attachment = 1;   
  88.                     }   
  89.  
  90.                 $postmarked = strpos(strtolower($attachment->post_title), strtolower($customkey));   
  91.                 $fileimage = explode('.', basename($attachment->guid));   
  92.  
  93.                 if( $postmarked == true || $post->ID == $fileimage[0] || $post->post_name == $fileimage[0] ) {   
  94.                     $img_url = $attachment->guid;   
  95.                     $img_title = apply_filters('the_title', $attachment->post_title);   
  96.  
  97.                     if($postmarked == true) {   
  98.                         $img_title = trim(str_replace($customkey, '', $img_title));   
  99.                         break;   
  100.                     }   
  101.                 }   
  102.             }   
  103.         }   
  104.  
  105.         if( $use_thumb && ($img_url != $default_image) )   
  106.             $img_url = preg_replace('!(\.[^.]+)?$!', __('.thumbnail') . '$1', $img_url, 1);   
  107.     }   
  108.  
  109.     $img_path = ABSPATH . str_replace(get_settings('siteurl'), '', $img_url);   
  110.  
  111.     if( !file_exists($img_path) ) {   
  112.         return;   
  113.     } else {   
  114.         if( $img_tag ) {   
  115.             $imagesize = @getimagesize($img_url);   
  116.             $image = '<img class="' . $css_class . '" src="' . $img_url . '" ' . $imagesize[3] . ' title="' . $img_title . '" alt="' . $img_title . '" />';    
  117.         } else {    
  118.             $image = $img_url;    
  119.         }    
  120.     }    
  121.   
  122.     if$display )    
  123.         echo $image;    
  124.   
  125.     return $image;    
  126. }    
  127. ?>  
责任编辑:semirock