我有這兩個功能,我在網上找到和編輯我的需要。
我想要做的是將wordpress文章的縮略圖設置爲默認的,以前設置在功能本身的圖像,或嵌入在帖子中的第一個圖像。
然而,出事了......某處如何獲取第一張圖片並將其設置爲張貼縮略圖?
wptuts_save_thumbnail($ POST_ID) - >設置後的縮略圖默認或第一形象,如果它沒有設置(由筆者帖子...)!
function wptuts_save_thumbnail($post_id) {
$post_thumbnail = get_post_meta($post_id, '_thumbnail_id', true);
if (!wp_is_post_revision($post_id)) { // Verify that the post is not a revision
if (empty($post_thumbnail)) { // Check if Thumbnail does NOT exist!
$firstImg = firstImg($post_id); // Get the first image of a post (if available)
if(!$firstImg){ // if available, update the post thumbnail
update_post_meta($post_id, '_thumbnail_id', 'link to default image here');
} else { // else -> set thumbnail to default thumbnail
update_post_meta($post_id, '_thumbnail_id', $firstImg);
}
}
}
}
firstImg($後_id) - >用於獲取後(按ID)的第一個圖像
function firstImg($post_id) {
$post = get_post($post_id);
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
$first_img = $matches[1][0];
$urlLength = strlen(site_url());
$first_img = substr($first_img, $urlLength);
if(empty($first_img)){
return false;
}
return $first_img;
}
唯一的問題與這些功能是在if(!$firstImg) - else
聲明。
圖像將始終設置爲默認,並且在帖子中有或沒有嵌入圖像。
$firstImg
確實會返回第一張圖片(如果存在),則問題必須出現在2 if
的:if(empty($first_img))
或if(!$firstImg)
。
我試圖尋找任何問題的線索,但我什麼也沒找到。
希望有人可以解決這個問題:)
在此先感謝!
附加信息:
- 兩者的功能都寫在我的主題functions.php
。
- wptuts_save_thumbnail($post_id)
設置爲在每次發佈帖子時都會運行NEW。
- 返回時,$first_img
是圖片(即/wp-contents/uploads/img.jpg)或false
的相對路徑。