22次瀏覽 linux web
#wordpress #教學 #精選圖片

自動設定精選圖片

wordpress有個精選圖片的功能
但是每次都忘記設定,造成有的文章有圖片,有的文章沒圖片
我的作法如下

1.設定函式 (function)

這個函式可以自動抓文章中第一張圖片設定為精選圖片
將下面些程式碼貼到function.php
記得要設定”子主題”,不然每次更新完主題又不見了
子主題,我有空再寫吧…
(點兩下可以快速複製)

function wpsites_auto_set_featured_image() {
   global $post;
   $featured_image_exists = has_post_thumbnail($post->ID);
      if (!$featured_image_exists)  {
         $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
         if ($attached_image) {
            foreach ($attached_image as $attachment_id => $attachment) {set_post_thumbnail($post->ID, $attachment_id);}
         }
      }
}
add_action('the_post', 'wpsites_auto_set_featured_image');

參考文章 : https://xomisse.com/blog/auto-featured-image/

2.設定”預設”精選圖片 (default featured image)

有時候文章只有文字而已
像我很常當日記用,寫個幾句就PO文
這時候沒有圖片,上面那個程式碼也派不上用場了
這時候就需要一個自動的預設精選圖片
我是用這個外掛來做—Default featured image
步驟如下:

  • 1.先安裝外掛,然後啟用
  • 2.到設定->媒體,選擇你要當作”預設”的圖片

這兩個動作有先後順序,要先做1再做2,不然你的所有沒圖片的文章都會被預設圖片蓋過去,這樣步驟一的程式碼就無法動作了
如果已經先做2了,就先停掉外掛再啟用即可

3.精選圖片是預設圖的話,文中不顯示

其實我做這些只是為了讓”相關文章”,或是”推薦文章”的排版可以整齊一點

但是在文章中顯示一個醜醜的預設圖片不是我想要的
所以我又自己加上排除的功能
只要是精選圖片檔名是我預設的,則不顯示
這邊比較困難,每個主題也許會不同
自己謹慎使用
關鍵字是找 has_post_thumbnail()
然後自己想辦法加入判斷式
!strpos(get_the_post_thumbnail_url(), “你的預設圖片檔名”)
程式的內容大意就是: 如果圖片網址中沒有包含“你的預設圖片檔名”,才會顯示
以下是以我的主題kokoro為範例,請不要照抄,會不能動,除非你也是用kokoro主題

原本這樣

變成這樣