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

更新时间:2019-05-13    来源:WordPress    手机版     字体:

【www.bbyears.com--WordPress】

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

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

 代码如下 function catch_that_image() {
      global $post, $posts;
      $first_img = "";
      ob_start();
      ob_end_clean();
      $output = preg_match_all("//i", $post->post_content, $matches);
      $first_img = $matches [1] [0];
      if(empty($first_img)){ //Defines a default image
        $first_img = "/images/default.jpg";
      }
      return $first_img;
    }

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

 代码如下


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

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

 代码如下 function emtx_auto_thumbnail($pID,$thumb="thumbnail") {
$blogimg = FALSE;
 if (has_post_thumbnail()) {// 判断该文章是否已经设置了“特色图像”,如果有则直接显示该特色图像的缩略图 www.111cn.net
      $blogimg = wp_get_attachment_image_src(get_post_thumbnail_id($pID),$thumb);
      $blogimg = $blogimg[0];
 } elseif ($postimages = get_children("post_parent=$pID&post_type=attachment&post_mime_type=image&numberposts=0")) {//如果文章没有设置特色图像,则查找文章内是否有上传图片
    foreach($postimages as $postimage) {
       $blogimg = wp_get_attachment_image_src($postimage->ID, $thumb);
       $blogimg = $blogimg[0];
      }
     } elseif (preg_match("/]*src=["|"]([^"|"]+)/i", get_the_content(), $match) != FALSE) {
      $blogimg = $match[1];
     }
  if($blogimg) {
$blogimg = "";
}
      return $blogimg;
 
 }

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

 代码如下

ID) ) {
  echo emtx_auto_thumbnail($post->ID);
} ?> 

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


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

 代码如下

if ( !function_exists("fb_AddThumbColumn") && function_exists("add_theme_support") ) {
   
    // 在文章列表页与页面列表页添加缩略图列表
    add_theme_support("post-thumbnails", array( "post", "page" ) );
   
    function fb_AddThumbColumn($cols) {
       
        $cols["thumbnail"] = __("Thumbnail");
       
        return $cols;
    }
   
    function fb_AddThumbValue($column_name, $post_id) {
           
            $width = (int) 35;
            $height = (int) 35;
           
            if ( "thumbnail" == $column_name ) {
                // thumbnail of WP 2.9
                $thumbnail_id = get_post_meta( $post_id, "_thumbnail_id", true );
                // image from gallery
                $attachments = get_children( array("post_parent" => $post_id, "post_type" => "attachment", "post_mime_type" => "image") ); www.111Cn.net
                if ($thumbnail_id)
                    $thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );
                elseif ($attachments) {
                    foreach ( $attachments as $attachment_id => $attachment ) {
                        $thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
                    }
                }
                    if ( isset($thumb) && $thumb ) {
                        echo $thumb;
                    } else {
                        echo __("None");
                    }
            }
    }
   
    // 文章页调用
    add_filter( "manage_posts_columns", "fb_AddThumbColumn" );
    add_action( "manage_posts_custom_column", "fb_AddThumbValue", 10, 2 );
   
    // 页面调用
    add_filter( "manage_pages_columns", "fb_AddThumbColumn" );
    add_action( "manage_pages_custom_column", "fb_AddThumbValue", 10, 2 );
}

如后台的效果

 

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

本文来源:http://www.bbyears.com/wangyezhizuo/50940.html