做乙個WordPress的Picasa外掛程式

2021-05-14 09:15:36 字數 1470 閱讀 2062

一直想為我的部落格加上相簿功能(這樣我照的相片才有人看),但始終沒有實現。首先我不會在自己的部落格上開發乙個完整的相簿功能,一來費時費力,二來 我的空間容量有限(才100m呢),放不了多少**。那麼我就需要選擇乙個第三方相簿服務,不但容量要大,而且最好能提供開發api,這樣我就比較容易把 相簿功能嵌入到我的部落格中。毫無懸念地,我選擇了google picasa。

<?php

/* plugin name: zzmfish』s picasa */

頭部雖然只是一段注釋,但是必不可少,這樣wordpress才能識別你的外掛程式。在這個頭部中,我只定義了外掛程式名字「zzmfish』s picasa」,這將顯示在管理後台的外掛程式面板中。 wordpress的外掛程式開發是用鉤子函式(hook)實現 ,其中又分為actions和filters兩類。在我做的這個外掛程式中只用到filter鉤子。 filters是用來對從資料庫取出或將要儲存到資料庫中的資料進行處理的一類鉤子函式。以這個picasa外掛程式為例,wordpress可以允許使用者自 定義頁面,這些頁面資訊(主要包括鏈結與內容)就儲存在資料庫中,而我現在想新增乙個相簿頁面,就需要用到定義兩個filter來處理從資料庫取出的數 據,分別新增相簿鏈結與相簿內容到相應的資料結構中。

註冊第乙個filter鉤子:

define(』zzmpicasa_page_id』, 9999);

function add_to_pages($pages)

add_filter(』wp_list_pages』, 『add_to_pages』, 10, 1);

最後一句的意思是註冊乙個filter鉤子,使在生成頁面鏈結列表之後(wp_list_pages)呼叫add_to_pages函式,優先順序為10,引數為1個。add_to_pages函式很簡單,就是把相簿鏈結新增到頁面列表中,然後返回。每個頁面都需要有乙個id,我定義相簿頁面的id為 「9999」,根據這個id不可能從資料庫中頁面內容。沒關係,我們可以再註冊乙個filter鉤子來處理這個問題:

class mypost

function add_to_posts($posts)

return $posts;

}add_filter(』the_posts』, 『add_to_posts』, 10, 1);

註冊乙個鉤子,使在生成頁面內容的時候(the_posts)的時候呼叫add_to_posts函式,如果是相簿頁面,就對資料進行處理。返回結果必須 是物件陣列,因此我定義了乙個mypost類,然後返回乙個mypost物件。這樣寫做顯然很不好,但除此之外我不知道怎樣建立乙個具有 post_title和post_content屬性的物件。頁面標題為「我的**」,內容由get_albumlist_html函式生成:

檢視全部」;}

$html .= 「」;

return $html;

}加上最後一行

?>

值得注意的是,「<?php」之前和「?>」之後不可有任何字元(包括空白字元),因為這會導致在wordpress傳送http頭部之前發出內容,使後面傳送頭部失敗!

做乙個programmer,而不做乙個coder

programmer是程式的思考者,而coder只是乙個執行者 勞心者製人,勞力者制於人 如果專案不緊的情況下,應該從需求做起,最好能夠窮盡所有的需求,遇到與別人模組互動的情況,規定好與別人互動的介面。然後才是開始設計,抓住需求當中的名詞,想想是否設計成為類,然後根據測試用例,來設計框架結構,至少要...

做乙個明媚的女子

以前的我都是我行我素的,長大了,不僅要自己欣賞自己,更需要別人欣賞自己!1.愛笑的女孩子,運氣不會太差 2.看穿但不說穿。很多事情,只要自己心裡有數就好了,沒必要說出來。3.高興,就笑,讓大家都知道。悲傷,就假裝什麼也沒發生 4.在不違背原則的情況下 對別人要寬容 能幫就幫 千萬不要把人逼絕了 給人...

做乙個純淨的女子

女子,你可以有多種色調,可以有多種風格,可以千變,可以萬化,但別失了女子的原味,女子的底色。女人是水做的,記住你該有水的樣子,純淨的模樣。純淨不是叫你呆呆的,更不是裝嫩。或許純淨兩個字一出來,我們腦海裡浮現的就是乙個孩子或者少女的模樣。那是純淨的乙個具體形象。他們長有純淨的模樣,但那不必是我們追逐的...