讓 WordPress 縮略圖機制支持URL外鏈圖片

最近爲一位朋友定製一款圖片主題,爲其使用了 七牛雲存儲 服務,但是想讓縮略圖支持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-&gt;post_content;
preg_match_all('/&lt;img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?&gt;/sim', $content, $strResult, PREG_PATTERN_ORDER);
$n = count($strResult[1]);
if($n &gt; 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文件,放在主題根目錄下
然後調整樣式之類的,關於代碼中的結構和類名可以修改爲適合自己所使用的主題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章