新聞中心
WordPress開發(fā):自定義一個短代碼Shortcode的具體步驟(一)
無憂小編也在使用Wordpress程序在無憂主機php空間中建站哦,快來與我們交流下經(jīng)驗把。這次和大家介紹下wordpress Shortcode;這個東西是干嘛的呢?這個是讓用戶通過wordpress短代碼可以非常方便快速地在編輯文章或頁面的時候插入動態(tài)內(nèi)容,短代碼的常見應用有插入最新文章、插入廣告、插入音頻視頻、插入下載按鈕等。由于這個短代碼功能是在2.5版本引進來的,一直到現(xiàn)在都在沿用,所以很多模板定制商都會這個功能,如果你是站長,或者是Wordpress的學習者可以學習一下哦,今天無憂主機小編給大家介紹第一步,利用簡單的代碼創(chuàng)建回調(diào)函數(shù)。 考慮到初次接觸這塊的站長們的操作,無憂小編就先由簡到繁的講解一下: 在使用Wordpress程序時,我們想顯示給定的最新文章,那么我們可以通過下面的代碼來實現(xiàn):[recent-posts] 有變量的話,那么如何控制變量的值呢?當然要通過設定一個參數(shù)來控制現(xiàn)實的文章的數(shù)量:[recent-posts posts="5"] 文章調(diào)用出來了,是不是得給文章列表增加一個標題呢?需求代碼如下: [recent-posts posts="5"]Posts Heading[/recent-posts] 懂編程的可能一下就知道無憂小編上面所說的,不懂的,請繼續(xù)往下看: 第一步:創(chuàng)建回調(diào)函數(shù) 利用短代碼創(chuàng)建一個函數(shù)方法,這里是用代碼實現(xiàn)的功能,從數(shù)據(jù)庫中獲取最新的文章:
function recent_posts_function() { query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => 1)); if (have_posts()) : while (have_posts()) : the_post(); $return_string = '<a href="'.get_permalink().'">'.get_the_title().'</a>'; endwhile; endif; wp_reset_query(); return $return_string; }上面的代碼可以查詢數(shù)據(jù)庫獲取出最新的文章并且返回一個帶有<a>鏈接字符串,需要注意的是這個函數(shù)返回的是字符串而非直接輸出的內(nèi)容。 第二步:注冊短代碼 功能代碼寫完了,怎么讓這個功能在Wordpress中使用呢? 那么就是第二步的功能注冊短代碼啦,方法很簡單,利用代碼:
function register_shortcodes(){ add_shortcode('recent-posts', 'recent_posts_function'); }上面這段代碼就可以讓調(diào)用短代碼:[recent-posts]而實現(xiàn)調(diào)用獲取文章回調(diào)函數(shù)recent_posts_function(),這里需要注意的是短代碼的命名要有意義,避免重復錯亂。 第三步:Hook into WordPress 短代碼也封裝好了,就只剩下嵌套使用了,為了能讓recent_posts_function() 函數(shù)順利執(zhí)行,我們需要綁定到WordPress 的初始化鉤子中去。 重要代碼:add_action( 'init', 'register_shortcodes'); 第四步:測試功能 一個簡單而又復雜的獲取最新文章的短代碼已經(jīng)完成,現(xiàn)在就是測試,怎么測試呢? 在wp后臺新建一篇文章,或者再編輯原文章也可以,然后把短代碼:[recent-posts]加入到文章內(nèi)容的某個位置即可。在瀏覽器中打開后,就可以看到如下圖所示:
![Wordpress開發(fā):自定義一個短代碼Shortcode的具體步驟(一)](http://www.love62.cn/wp-content/uploads/2015/03/wp-3-21-2-300x86.png)
本文地址:http://www.love62.cn/wordpress/19020.html
![1](/wp-content/themes/starow_z/img/o-1.png)
![1](/wp-content/themes/starow_z/img/o-2.png)
![1](/wp-content/themes/starow_z/img/o-3.png)
![1](/wp-content/themes/starow_z/img/o-4.png)
![1](/wp-content/themes/starow_z/img/o-5.png)
![1](/wp-content/themes/starow_z/img/o-6.png)
![1](/wp-content/themes/starow_z/img/o-7.png)