WORDPRESS第十課WORDPRESS源代碼研究-側邊欄的實現

wordpress源代碼研究-側邊欄的實現

wordpress的widget.中文的後臺顯示名稱叫小工具。包括你自己添加自定義代碼進去的文本工具。

有一些工具是主題自帶的,有的些是你自己加的,或者說在你安裝了某些插件之後插件爲你加上的。這些所有用可用的插件,他們的信息都是保存在option表中的,我們都知道,在WP初始化的第一步(我前面的文章《wordpress源代碼研究-前臺運行流程》裏有講到),就把這些數據放到全局變量中了。所以在構造側邊欄的時候,基本流程就是讀取這些數據,然後將我們選中的小工具顯示出來。

具體是如何做的呢,數據的準備我們不說了,無非就是查庫數據格式化。

我 們從第二步開始說,首先一個頁面得到請求,他會調用到模板頁去顯示。而模板頁面(index 或者single)他們除了有自己特殊的一些信息的展現代碼之外,還包含了一些通用的模板(大模板中包含子模板)。比如header.footer.當然 還有我們今天的主角就是sidebar.然後這些小的模板又被包含,被激活。

我們的東西就在sidebar裏面,我這個模板的定義是這樣的。

1

2

3

4

<div id="sidebar">

<ul>

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>;

.......

就是說如果存在dynamic_sidebar這個函數的話,就調用這個函數,如果這個函數返回的是false(表明他沒幹成什麼事,沒有輸出),那就執行下面的東西。

下面是什麼呢?下面其實就是和上面這個dynamic單詞對應的,static的東西了。就是說主題默認的幾個widget。比如日曆啊,搜索框啊什麼的。

當然,我們怎麼會沒有dynamic_sidebar呢。這個函數就位於你的wp-includes/widgets.php裏,搜一下就找到了。他就是整個widget的核心。

他得到我們選擇好的widget列表,怎麼得到?前面已經把數據準備好了,他讀一下就OK了。

然 後再按圖索驥,foreach每一個widget,得到他們的具體信息,這個具體信息是什麼內容呢?最重要的內容就是有一個callback函數 及其參數。就是說這個widget要怎麼怎麼表現自己,就在這個widget的callback函數裏寫好了。最後就是在每個widget裏調用這個 widget.帶上他的參數。然後widget的HTML就出來了,輸出,OK。打完收工。

發佈了34 篇原創文章 · 獲贊 12 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章