[WordPress] 外掛分享: Kama Thumbnail

首頁外掛目錄 › Kama Thumbnail
9,000+
安裝啟用
★★★★
4.7/5 分(15 則評價)
1091 天前
最後更新
問題解決
WordPress 4.7+ PHP 7.1+ v3.5.1 上架:2015-08-03

內容簡介

這個外掛可以方便地在不增加負擔的情況下即時建立文章縮圖,是 "thumbnail.php" 腳本的最佳替代品。

支援多站點。

使用方法

這是針對開發人員的外掛,安裝後不會直接執行任何操作。為了讓外掛正常運作,你需要在你的佈景主題或外掛中使用其中一個外掛函式。例如:

<?php echo kama_thumb_img( 'w=150 &h=150' ); ?>

使用這段代碼可以在迴圈中獲取準備好的文章縮圖 IMG 標籤。插件會獲取文章縮略圖或是在文章內容中找到第一張圖片,將其調整大小並建立快取。同時,插件會為文章創建一個自定義欄位,其中包含原始圖片的 URL。換句話說,插件會將所有的程序都快取下來,在下一次加載網頁時直接使用快取結果。

你也可以根據自定義的 URL 來製作縮圖,像這樣:

URL_TO_IMG 必須來自本地伺服器,默認情況下,此插件無法處理外部圖片,因為涉及到安全問題。但是可以在設置頁面上設置允許的主機: 設置 > 媒體。

所有的插件函式:

// 返回縮略圖 URL
echo kama_thumb_src( $args, $src );

// 返回縮略圖 IMG
echo kama_thumb_img( $args, $src );

// 返回縮略圖 IMG 标签包裹的链接。 鏈接到原始圖片。
echo kama_thumb_a_img( $args, $src );

// 可以在縮略圖創建後獲得圖像的寬度或高度
echo kama_thumb( $optname );
// Ex:
echo '<img src="'. kama_thumb_src('w=200') .'" width="'. kama_thumb('width') .'" height="'. kama_thumb('height') .'" alt="" />';

參數:

$args (array/string)
用來創建縮略圖的參數。接受:

w | width
(int) 想要縮略的寬度。

h | height
(int) 想要縮略的高度。

如果沒有設置 w 和 h 參數,那麼它們均為 100 - 方形縮略圖 100x100 px。

notcrop
(isset) 如果設置,crop 參數變為false,即 crop=false。

crop
(isset) 控制圖像裁剪。默認情況下永遠為 true。

要禁用裁剪,請設置為 false/0/no/none 或設置參數 'notcrop'。然後,圖像將不會被裁剪並將被創建作為原始圖像的大小設置的小副本:寬度或高度 - 插件會選擇最小適合的側面。因此,一個側面會按照設置的 w 或 h 進行設置,而另一個側面會小於 w 或 h。

裁剪位置

同時,您可以指定字符串: 'top'、'bottom'、'left'、'right' 或 'center' 以及由此字符串黏合的任何其他組合。例如:'right/bottom'。所有這些都將設置裁剪區域:

'left', 'right' – 水平側面(w)
'top', 'bottom' – 垂直側面(h)
'center' – 對於兩側(w和h)

當僅設置一個值時,另一個值將默認。預設為:'center/center'。

範例:

// 圖像將按縮小高度,並裁剪寬度。
// “right” 意味著會顯示圖像的右側,左側將被裁剪。
kama_thumb_img('w=200 &h=400 &crop=right');

// 圖像將按縮小寬度,並裁剪高度。
// “top” 意味著圖像的頂部將被顯示,底部將被裁剪。
kama_thumb_img('w=400 &h=300 &crop=top');

$src

(str)需要創建縮略圖的圖像 URL。如果未指定,插件將嘗試獲取文章中的圖像和縮略圖。

$optname

(str) 要獲取寬度或高度的選項名稱。可選的值: 'width', 'height'。

外掛標籤

開發者團隊

⬇ 下載最新版 (v3.5.1) 或搜尋安裝

① 下載 ZIP → 後台「外掛 › 安裝外掛 › 上傳外掛」
② 後台搜尋「Kama Thumbnail」→ 直接安裝(推薦)
📦 歷史版本下載

原文外掛簡介

Convenient way to create post thumbnails on the fly without server overload.
The best alternative to scripts like “thumbnail.php”.
Supports Multisite.
Usage
The plugin for developers firstly, because it don’t do anything after install. In order to the plugin begin to work, you need use one of plugin function in your theme or plugin. Example:

Using the code in the loop you will get ready thumbnail IMG tag. Plugin takes post thumbnail image or find first image in post content, resize it and create cache. Also creates custom field for the post with URL to original image. In simple words it cache all routine and in next page loads just take cache result.
You can make thumbs from custom URL, like this:

The URL_TO_IMG must be from local server: by default, plugin don’t work with external images, because of security. But you can set allowed hosts on settings page: Settings > Media.
All plugin functions:
// return thumb url URL
echo kama_thumb_src( $args, $src );

// return thumb IMG tag
echo kama_thumb_img( $args, $src );

// return thumb IMG tag wraped with . A link of A will leads to original image.
echo kama_thumb_a_img( $args, $src );

// to get image width or height after thumb creation
echo kama_thumb( $optname );
// ex:
echo '';

Parameters:

$args (array/string)
Arguments to create thumb. Accepts:

w | width
(int) desired width.

h | height
(int) desired height.
if parameters w and h not set, both of them became 100 – square thumb 100х100 px.

notcrop
(isset) if set crop parameter become false – crop=false.

crop
(isset) Control image cropping. By default always true.
To disable cropping set here false/0/no/none or set parameter 'notcrop'. Then image will not be cropped and will be created as small copy of original image by sizes settings of one side: width or height – here plugin select the smallest suitable side. So one side will be as it set in w or h and another side will be smaller then w or h.
Cropping position
Also, you can specify string: 'top', 'bottom', 'left', 'right' or 'center' and any other combinations of this strings glued with /. Ex: 'right/bottom'. All this will set cropping area:

'left', 'right' – horizontal side (w)
'top', 'bottom' – vertical side (h)
'center' – for both sides (w and h)

When only one value is set, the other will be by default. By default: 'center/center'.
Examples:
// image will be reduced by height, and width will be cropped.
// "right" means that right side of image will be shown and left side will be cut.
kama_thumb_img('w=200 &h=400 &crop=right');

// image will be redused by width, and height will be cropped.
// "top" means that the top of the image will be shown and bottom side will be cut.
kama_thumb_img('w=400 &h=200 &crop=top');

// you can specify two side position at once, order doesn't matter
kama_thumb_img('w=400 &h=200 &crop=top/right');

Reduce image by specified side
In order to get not cropped proportionally rediced image by specified side: by width or height. You need specify only width or only height, then other side will be reduced proportional. And no cropping will appear here.
kama_thumb_img('w=200');

So, width of our image will be 200, and height will be as it will…
Теперь ширина всегда будет 200, а высота какая получится… And the picture will be always full, without cropping.

q | quality
(int) jpg compression quality (Default 85. max.100)

stub_url
(string) URL to no_photo image.

alt
(str) alt attr of img tag.

title
(str) title attr of img tag.

class
(str) class attr of img tag.

style
(str) style attr of img tag.

attr
(str) Allow to pass any attributes in IMG tag. String passes in IMG tag as it is, without escaping.

a_class
(str) class attr of A tag.

a_style
(str) style attr of A tag.

a_attr
(str) Allow to pass any attributes in A tag. String passes in A tag as it is, without escaping.

no_stub
(isset) don’t show picture stub if there is no picture. Return empty string.

yes_stub
(isset) show picture stub if global option in option disable stub showing, but we need it…

post_id | post
(int|WP_Post) post ID. It needs when use function not from the loop. If pass the parameter plugin will exactly knows which post to process. Parametr ‘post’ added in ver 2.1.

attach_id
(int) ID of wordpress attachment image. Also, you can set this parametr by pass attachment ID to ‘$src’ parament – second parametr of plugin functions: kama_thumb_img('h=200', 250) or kama_thumb_img('h=200 &attach_id=250')

allow
(str) Which hosts are allowed. This option sets globally in plugin setting, but if you need allow hosts only for the function call, specify allow hosts here. Set ‘any’ to allow to make thumbs from any site (host).

$src
(string) URL to any image. In this case plugin will not parse URL from post thumbnail/content/attachments.
If parameters passes as array second argument $src can be passed in this array, with key: src или url или link или img:
echo kama_thumb_img( array(
'src' => 'http://yousite.com/IMAGE_URL.jpg',
'w' => 150,
'h' => 100,
) );

Notes

You can pass $args as string or array:
// string
kama_thumb_img('w=200 &h=100 &alt=IMG NAME &class=aligncenter', 'IMG_URL');

// array
kama_thumb_img( array(
'width' => 200,
'height' => 150,
'class' => 'alignleft'
'src' => ''
) );

You can set only one side: width | height, then other side became proportional.

src parameter or second function argument is for cases when you need create thumb from any image not image of WordPress post.

For test is there image for post, use this code:
if( ! kama_thumb_img('w=150&h=150&no_stub') )
echo 'NO img';

Examples
#1 Get Thumb
In the loop where you need the thumb 150х100:

Result:

#2 Not show stub image

#3 Get just thumb URL

Result: /wp-content/cache/thumb/ec799941f_100x80.png
This url you can use like:
' alt=''>

#4 kama_thumb_a_img() function

Result:

#5 Thumb of any image URL
Pass arguments as array:
'http://yousite.com/IMAGE_URL.jpg',
'w' => 150,
'h' => 100,
) );
?>

Pass arguments as string:

When parameters passes as string and “src” parameter has additional query args (“src=$src &w=200” where $src = http://site.com/img.jpg?foo&foo2=foo3) it might be confuse. That’s why “src” parameter must passes as second function argument, when parameters passes as string (not array).
#6 Parameter post_id
Get thumb of post ID=50:

I don’t need plugin
This plugin can be easily used not as a plugin, but as a simple php file.
If you are themes developer, and need all it functionality, but you need to install the plugin as the part of your theme, this short instruction for you:

Create folder in your theme, let it be ‘thumbmaker’ – it is for convenience.
Download the plugin and copy the files: class.Kama_Make_Thumb.php and no_photo.jpg to the folder you just create.
Include class.Kama_Make_Thumb.php file into theme functions.php, like this:
require ‘thumbmaker/class.Kama_Make_Thumb.php’;
Bingo! Use functions: kama_thumb_*() in your theme code.
If necessary, open class.Kama_Make_Thumb.php and edit options (at the top of the file): cache folder URL/PATH, custom field name etc.

Conditions of Use – mention of this plugin in describing of your theme.

延伸相關外掛

文章
Filter
Mastodon