WordPress 添加自定義文章欄目

WordPress允許自定義添加文章自定義欄目,如下圖,可以在文章編輯的時候,添加一個欄目隨著文章發(fā)布和更新一起提交。愛掏網(wǎng) - it200.com

1.注冊函數(shù)

首先添加動作,第一個參數(shù)為指定WordPress動作類型,第二個參數(shù)為指定函數(shù)

add_action(‘a(chǎn)dd_meta_boxes’, ‘fun_plug_add_meta_box’);

指定函數(shù)

function fun_plug_add_meta_box(){    add_meta_box(down_link, 下載地址, meta_box_down_link_form, post, advanced, high);}

add_meta_box函數(shù)功能如下

$id HTML 代碼中設置區(qū)域中id屬性的值,也是WordPress文章自定義欄目的一個唯一標識符

$title 區(qū)域中的標題名稱,支持HTML代碼$callback 添加的設置區(qū)域的顯示函數(shù),界面在這個函數(shù)里面實現(xiàn)$post_type 在 post 還是 page 的編輯頁面中顯示$context 設置區(qū)域的顯示位置,主編輯區(qū)(advanced)、邊欄(side)$priority 設置區(qū)域顯示的優(yōu)先級,high(高),low(低),default(默認)$callback_args 回調(diào)函數(shù)接受的附加參數(shù),一般省略

回調(diào)函數(shù)如下:

function meta_box_down_link_form($post){    // 創(chuàng)建臨時隱藏表單,為了安全    wp_nonce_field(meta_box_down_link_form, meta_box_down_link_form_nonce);    // 獲取之前存儲的值    $value = get_post_meta($post->ID, down_link, true);    ?>     >    

至此,后臺文章已經(jīng)正常顯示內(nèi)容了。愛掏網(wǎng) - it200.com

相關解釋

【1】wp_nonce_field函數(shù),本函數(shù)為WordPress防止攻擊的一個函數(shù),原理是生成一個隨意的字符,在保存函數(shù)中,驗證這個字符是否和提交的字符一致,如果不一致,就說明可能這個內(nèi)容來自第三方偽造內(nèi)容提交,而不是在文章頁面直接提交。愛掏網(wǎng) - it200.com

當然,如果不寫這個函數(shù),也是可以的,在保存的函數(shù)中,也不用驗證就是了。愛掏網(wǎng) - it200.com

函數(shù)第一個參數(shù)為唯一標識符,第二個為表單名稱,在后面保存文章字段的時候,可以通過$_POST[‘名稱’]來獲取這個值。愛掏網(wǎng) - it200.com

【2】get_post_meta函數(shù),WordPress中,通過get_post_meta獲取保存的文章額外字段,通過update_post_meta保存額外字段。愛掏網(wǎng) - it200.com

2.保存文章數(shù)據(jù)

上面注冊函數(shù)后,也能提交內(nèi)容了,但是還沒有保存內(nèi)容,所以無法顯示東西。愛掏網(wǎng) - it200.com需要接管WordPress文章保存函數(shù)。愛掏網(wǎng) - it200.com

注冊保存文章動作,第二個參數(shù)為自定義函數(shù),WordPress會傳入一個文章ID參數(shù)

add_action(‘save_post’, ‘fun_save_post_down_link’);

自定義函數(shù),本函數(shù)處理文章額外字段的保存

function fun_save_post_down_link($post_id){    // 安全檢查    // 檢查是否發(fā)送了一次性隱藏表單內(nèi)容    if (!isset($_POST[meta_box_down_link_form_nonce])) {        return;    }    // 判斷隱藏表單的值與之前是否相同    if (!wp_verify_nonce($_POST[meta_box_down_link_form_nonce], meta_box_down_link_form)) {        return;    }    // 判斷該用戶是否有權限    if (!current_user_can(edit_post, $post_id)) {        return;    }    // 判斷 Meta Box 是否為空    if (!isset($_POST[down_link1])) {        return;    }    update_post_meta($post_id, down_link, $_POST[down_link1]);}

其中,安全檢查中,需要上面的wp_nonce_field支持,如果沒有創(chuàng)建這個隨機值,就不需要判斷。愛掏網(wǎng) - it200.com

首先判斷是否有這個值,如果沒有,說明提交可能是偽造的。愛掏網(wǎng) - it200.com接著判斷值是否一致,通過函數(shù)wp_verify_nonce來判斷,第一個為要對比的值,通過$_POST獲取提交過來的值,第二參數(shù)為唯一標識符,和wp_nonce_field函數(shù)的第一個參數(shù)一致。愛掏網(wǎng) - it200.com

接著判斷用戶是否有權限保存文章,current_user_can函數(shù)來判斷。愛掏網(wǎng) - it200.com

最后判斷是否有提交自定義的值,不為空的話,就使用函數(shù)update_post_meta來保存這個數(shù)據(jù)。愛掏網(wǎng) - it200.com

聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權益,可聯(lián)系我們進行處理。
發(fā)表評論
更多 網(wǎng)友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 全免费毛片在线播放| 亚洲av无码国产综合专区| √天堂中文官网在线| 美女被cao免费看在线看网站| 日韩日韩日韩日韩日韩| 国产拍拍拍无码视频免费| 亚洲成a人片在线观看中文| 91精品国产自产91精品| 欧美精品久久久久久久影视| 国语自产偷拍精品视频偷拍| 亚洲精品色午夜无码专区日韩 | 91成人免费观看在线观看| 激情综合一区二区三区| 在线播放中文字幕| 亚洲福利视频一区| 500第一福利正品蓝导航| 欧美式free群乱| 国产日韩综合一区二区性色av| 五月天亚洲色图| 邻居少妇张开腿让我爽了在线观看| 日本三级香港三级国产三级| 国产一级做a爰片久久毛片 | 欧美另类杂交a| 国产欧美另类久久精品蜜芽| 久久精品国产99久久| 色噜噜狠狠色综合欧洲| 成人免费在线观看网站| 免费中日高清无专码有限公司| www.尤物.com| 毛片a级毛片免费播放100| 国产精品电影一区| 亚一亚二乱码专区| 草莓视频色版在线观看| 性欧美18~19sex高清播放| 伊人色综合九久久天天蜜桃| 69国产成人精品午夜福中文| 最近中文字幕精彩视频| 国产乱人伦av在线a| ww在线观视频免费观看| 欧美日本国产VA高清CABAL| 国产成人无码精品久久久免费|