WordPress幻燈廣告外掛程式HelloFlash改良版

來源:互聯網
上載者:User

WordPress中的幻燈效果一般用於首頁廣告展示,我想不少一部分人應該有這樣的需求,我也曾經嘗試很多的外掛程式,但總覺得不夠滿意,包括HelloFlash外掛程式,他們最致命的缺點是什嗎?我列舉兩條:

1、一般幻燈效果外掛程式都會去搜尋文章中的第一張圖片,發現有圖片就放入到幻燈中。這似乎有點過份,因為我並不需要每一篇文章都需要放到幻燈廣告裡去。那麼做的稍微好一點的呢,就要求你指定一個目錄,但仍然不能指定哪一篇文章放到幻燈,所以完全不符合我的需求。

2、HelloFlash外掛程式應該說是非常滿足我需求的一個外掛程式,可以自訂將文章放入到幻燈中去,使用自訂模式就可以,但唯一要做的是:發表文章的時候需要添加一個自訂欄位flash_image,值就是圖片的連結地址了。但是,我不能接受如此繁瑣的操作,特別不能接受的是自訂一個欄位。

以上都是我所遇到的問題,後來我在使用Simplybiz模板(下次和大家分享這個模板,非常適合企業站,並且我有意向將它的幻燈給改良一下)的時候,竟然可以添加獨立的幻燈連結,很讓我欣喜,想把它改造一下以滿足我的需求,不過老外寫的主題還是挺複雜的,而且不是外掛程式,讓我把主題的一個功能改成一個外掛程式,我放棄了,我相信憑藉我的三腳貓功夫我肯定做不到。不過,至少這個主題給了我一個思路,主題中引用了一個叫“特色映像”的功能,英文稱之為Featured image,雖然在WP2.9的版本中就開始支援這個功能,但真正的開放算是在3.0的版本中,現在WP都已經到3.1.2版本了這個功能自然是成熟了。

為了得到自動將文章添加到幻燈的效果,我要求操作簡單,即:發表文章的時候,指定一個“特色映像”,這樣發表的文章就自動加入到幻燈中了。

根據我的猜測,既然HelloFlash外掛程式使用了自訂欄位flash_image,那麼,我只需要將這個欄位改成特色映像的欄位就可以實現。查看HelloFlash的code果真如此,兩個模式寫了兩個SQL語句。然後我去找特色映像這個欄位,轉了一大圈終於知道,特色映像欄位在postmeta表中,其中meta_key欄位的值為“_thumbnail_id”的即為特色映像,這一條記錄的post_id表示文章在post表中的ID號,meta_value的值為映像附件在post表中的ID號。但在這個的過程中,遇到難題了,一個表中查詢出兩條記錄並且他們的Where關鍵都是在另一個表中,不過最後還是解決了,將同一個表重複了一下,看上去是在三個表中查詢,最後就可以得到結果了。這個SQL查詢難了我好一會,不過看了上面的SQL語句得到的靈感,還不錯。需要將外掛程式的flash.php檔案中的如下code:

SELECT a.post_title AS title, a.guid AS link, b.meta_value AS img
FROM wp_posts AS a, wp_postmeta AS b
WHERE meta_key = 'flash_image'
AND a.post_type = 'post'
AND b.post_id = a.id
ORDER BY `a`.`id` DESC
LIMIT 6

更改為如下code:

SELECT a.post_title AS title, a.guid AS link, c.guid AS img
FROM wp_posts AS a, wp_postmeta AS b, wp_posts AS c
WHERE b.meta_key = '_thumbnail_id'
AND a.ID = b.post_id
AND c.ID = b.meta_value
ORDER BY `a`.`id` DESC
LIMIT 6

需要稍稍注意一下的是:作者偷懶將表的名字直接寫死了,所以若不是“wp_”表頭的則需要你自己將上面的改成與你對應的頭。

這樣以後,事情還沒有完,將外掛程式上傳,然後啟用,並進入HelloFlash的設定,需要設定為自訂模式,長寬由你自己確定,如示意:

再說一次:長寬設定成你自己的哦。

好了,接下來就需要更改模板的代碼了。一般是在首頁顯示幻燈,所以在首頁模板中你需要幻燈的位置插入如下代碼:

if(function_exists(flash)) { flash();     }

經過以上折騰,雖然算是一切完畢了,但也許你的模板還不支援“特色映像”功能,如何開啟這個功能呢?方法:開啟模板中的functions.php檔案,添加如下code,這樣你在發表文章的時候就可以看到設定特色像的功能了。

if ( function_exists( 'add_theme_support' ) ) {
  add_theme_support( 'post-thumbnails' );
}

 

好了,這才算是真正折騰完。至於前台表現的部分,你可以再繼續自行最佳化。順便說一下這個外掛程式的問題:

1、每次調用,都是查詢資料庫,如果做成緩衝,是否更佳?不過我暫時沒有想法去折騰了。

2、有些模板本身支援特色映像功能,一般是放在首頁文章的前邊,這是最常規的做法,但這樣的話就會導致:你幻燈裡的圖片大小和文章期望的圖片大小不一致,這樣的就肯定算是衝突了,兩者只能二選一,除非你用回原版的HelloFlash,或者讓模板不使用特色映像,小有痛苦,不過我想這樣的需求應該在少數。

好了,可以去我的實驗室下載我改良版的HelloFlash外掛程式。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.