今天麥子看到知更鳥主題有一個缺陷,他在文章中調(diào)用其他文章的時候,縮略圖只是獲取到文章第一個圖片。其實這樣是不友好的,正確的邏輯應(yīng)該是先判斷是否有用戶自定義的縮略圖,因為自定義的縮略圖從尺寸和樣式是友好設(shè)置的。然后再去判斷文章中的插圖,或者設(shè)置默認的。
這里找到一個不錯的判斷縮略圖的調(diào)用方法,確實想的和我上面一樣周到。
/* * WordPress獲取縮略圖thumbnail調(diào)取最佳策略實踐 文章:https://www.zmki.cn/5288.html 項目基于:https://www.cnblogs.com/bojuetech/p/4891470.html */ // 縮略圖開始 if ( has_post_thumbnail() ) the_post_thumbnail( 'thumbnail' ); function dm_the_thumbnail() { global $post; // 判斷該文章是否設(shè)置的縮略圖,如果有則直接顯示 if ( has_post_thumbnail() ) { echo the_post_thumbnail();//這里直接輸出特色圖片 } else { //如果文章沒有設(shè)置縮略圖,則查找文章內(nèi)是否包含圖片 $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){ // 如果文章內(nèi)包含有圖片,就用第一張圖片做為縮略圖 echo $strResult[1][0] ; }else { // 如果文章內(nèi)沒有圖片,則用默認的圖片。 echo get_stylesheet_directory_uri() . '/img/thumb.png'; //具體路徑根據(jù)自己調(diào)整 } } } // 縮略圖結(jié)束
這個就是先考慮是否有自定義縮略圖,然后再從文章中獲取,或者文章中也沒有就用一個默認的替代。
這個可以修改一下知更鳥主題的縮略圖獲取方式然后使用這個。
評論