最近爲一位朋友定製一款圖片主題,爲其使用了 七牛雲存儲 服務,但是想讓縮略圖支持URL外鏈引用圖片,雖然說七牛有api可以直接調用不同大小的圖片,但是對於某人的博客來說,或許是大材小用。對於很多朋友來說,這個api可能很方便,但是卻非常難以折騰。這裏周良爲大家提供一個最簡單的方法(非調用API,而是所有的外鏈圖片 WordPress 都可以支持的方法)。
下面是本方法的特地:
- 支持手動上傳縮略圖
- 支持縮略圖外鏈引用
- 如果文章內包含有圖片,就用第一張圖片做爲縮略圖
- 如果文章內沒有圖片,則用默認的圖片
其實就是用 WordPress 提供的自定義欄目功能來解決。
1
|
$postImageUrl = get_post_meta($post->ID, 'thumbnail', true); //設置自定義欄目名爲“thumbnail”
|
1.在functions.php文件中添加下面代碼:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//縮略圖獲取
add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 262, 114 ,true );//設置縮略圖的尺寸 function dm_the_thumbnail() { global $post; $postImageUrl = get_post_meta($post->ID, 'thumbnail', true); //設置自定義欄目名爲“thumbnail” // 判斷該文章是否設置有縮略圖,如果有則直接顯示 if ( has_post_thumbnail() ) { echo '<span class="work-thumbnail">'; the_post_thumbnail(); echo '</span>'; } elseif ($postImageUrl) { echo '<span class="work-thumbnail"><img alt="" src="'.$postImageUrl.'" /></span>'; } else { //如果文章沒有設置縮略圖,則查找文章內是否包含圖片 $content = $post->post_content; preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER); $n = count($strResult[1]); if($n > 0){ // 如果文章內包含有圖片,就用第一張圖片做爲縮略圖 echo '<span class="work-thumbnail"><img alt="" src="'.$strResult[1][0].'" /></span>'; }else { // 如果文章內沒有圖片,則用默認的圖片 echo '<span class="work-thumbnail"><img alt="" src="'.get_bloginfo('template_url').'/images/thumbnail.jpg" /></span>'; } } } |
2.折騰完這些步驟以後,需要後臺界面右上角點擊顯示選項,勾選自定義欄目。
3.獲取timthumb.php文件,放在主題根目錄下
然後調整樣式之類的,關於代碼中的結構和類名可以修改爲適合自己所使用的主題。