倘若自己把一些需要的widget直接寫進(jìn)WordPress側(cè)邊欄sidebar.php里,在打開網(wǎng)頁時(shí),會(huì)比在后臺(tái)添加的widget速度要快一些。道理很簡(jiǎn)單,如果在后臺(tái)添加那些widget, 相當(dāng)于dynamic_sidebar,然后去get一些option之類的函數(shù),會(huì)比直接寫進(jìn)sidebar.php里多一些查詢和調(diào)用的過程。
而且,大家也發(fā)現(xiàn)了,在后臺(tái)的提供的widget里并非都是你想要的。所以有時(shí)候自己寫一些widget,還是蠻有趣的。
好比說,我現(xiàn)在想加一個(gè)友情鏈接(Blogroll)在側(cè)邊欄里,該怎么去寫呢? 很簡(jiǎn)單,在模板的sidebar.php里加上:
是不是很簡(jiǎn)單,當(dāng)然,如果為了讓這個(gè)顯示的更美觀一些,就要配合模板的CSS做一些調(diào)整了。在這段代碼里,主要是調(diào)用了wp_list_bookmarks,后面的括號(hào)里相當(dāng)于我們?cè)诤笈_(tái)設(shè)置的一些option,只是這里我們就可以把它寫成固定形式,以方便快速的調(diào)用。
要找到這些option的設(shè)置并不難,在安裝Wordpress的目錄下,有一個(gè)wp-includes的文件夾,里面就有一個(gè)widget.php, 打開一看,立馬就有一種豁然開朗的感覺了。^_^
接下來就可以隨心所欲的添加里面所提供的所有widget了,把一些option寫成你想要的,再打開頁面來,加載的時(shí)間會(huì)有減少的。
試著添加個(gè)文件分類(categories)吧:在function wp_widget_categories,它可以用下拉菜單的形式wp_dropdown_categories($cat_args); 也可以用列表的形式wp_list_categories($cat_args);,如果是做成列表的話,添加下面的代碼就可以了:
如果有什么不會(huì)設(shè)置的widget呢,可以看看那些已經(jīng)在sidebar里寫了widget的模板,可以學(xué)到很多哦。
可是有些想實(shí)現(xiàn)的東西在widget.php里沒有,那該怎么添加呢? 比如說隨機(jī)文章啊,最多閱讀之類的。
添加隨機(jī)文章,可以用到: get_posts(‘numberposts=10&orderby=rand’); 主要就是這個(gè)orderby=rand, 從數(shù)據(jù)庫里拿出來的文章就會(huì)做一個(gè)隨機(jī)的排序,具體代碼如下:
3 | foreach ( $posts as $post ) { |
5 | echo ''<li><a href="'' . get_permalink() . ''">'' . get_the_title() . ''</a></li>'' ; |
至于最多閱讀呢,會(huì)用到一個(gè)WP-PostViews的插件,啟用后,在側(cè)邊欄里添加:
如果想看到每天,每周,每月的最多瀏覽數(shù),用一個(gè)WP-PostViews Plus的插件就行了,主函數(shù)改成:<?php get_timespan_most_viewed(‘post’, 10, 30, true, false); ?> 30 就是所查詢的天數(shù)。這樣你就可以做一個(gè)文章閱讀量的排行榜了。周冠軍,月冠軍和年度總冠軍將相繼產(chǎn)生。
當(dāng)然我這里只是給一個(gè)思路,你可以寫的更好。比如不同頁面上用到的側(cè)邊欄也不盡相同,這樣更好不是嗎,當(dāng)然你也一定能打造的更加完美的。 