淺析WordPress怎么添加自定義字段面板

wordpress怎么添加自定義字段面板?下面本篇文章給大家介紹一下WordPress添加自定義字段面板的方法,希望對大家有所幫助!

淺析WordPress怎么添加自定義字段面板

?????我們在WordPress中編寫文章的時(shí)候,經(jīng)常會(huì)用到一些自定義字段,如網(wǎng)頁描述description和關(guān)鍵詞keywords這兩個(gè)meta標(biāo)簽,關(guān)于這兩個(gè)標(biāo)簽,可以看我之前寫過的一篇文章:WordPress設(shè)置獨(dú)立的Description和Keywords

?????通常在添加自定義字段和其值的時(shí)候,我們都是手動(dòng)去”自定義字段”模塊下拉框中去選擇相應(yīng)的字段,然后再輸入其值,最后還要提交等待一小段時(shí)間,似乎有點(diǎn)麻煩。那么可不可以給這些常用的自定義字段創(chuàng)建一個(gè)單獨(dú)的面板,直接在里面填內(nèi)容就可以了呢?就像文章標(biāo)簽,直接添加標(biāo)簽即可,不需要單獨(dú)提交。答案是可以的,下面是效果圖:

淺析WordPress怎么添加自定義字段面板

?????下面我將教你如何操作,以下所有代碼放到當(dāng)前主題的functions.php中即可

一、創(chuàng)建需要的字段信息

?????這里將以添加兩個(gè)自定義字段,名稱分別為 _description_value 和 _keywords_value,你可以給下面數(shù)組添加多個(gè)元素,實(shí)現(xiàn)添加多個(gè)自定義字段的目的。

?????數(shù)組第一個(gè)元素name為自定義字段的名稱,在本代碼中自定義字段的名稱為name值加_value,以防止與其他代碼發(fā)生沖突,如 _description_value;std為自定義字段的默認(rèn)值,當(dāng)你發(fā)表文章時(shí)該自定義字段沒填任何值,那么將取默認(rèn)值;title為自定義字段模塊的標(biāo)題,如文章編輯頁的”摘要”、”分類”和”標(biāo)簽”,這些都是模塊名稱。

$new_meta_boxes?=array( ??"description"?=>?array( ????"name"?=>?"_description", ????"std"?=>?"這里填默認(rèn)的網(wǎng)頁描述", ????"title"?=>?"網(wǎng)頁描述:"),  ??"keywords"?=>?array( ????"name"?=>?"_keywords", ????"std"?=>?"這里填默認(rèn)的網(wǎng)頁關(guān)鍵字", ????"title"?=>?"關(guān)鍵字:"));

二、創(chuàng)建自定義字段輸入框

?????以下代碼將用于創(chuàng)建自定義域以及輸入框,照寫就是了

function?new_meta_boxes()?{ ??global?$post,?$new_meta_boxes;  ??foreach($new_meta_boxes?as?$meta_box)?{ ????$meta_box_value?=?get_post_meta($post-&gt;ID,?$meta_box['name'].'_value',?true);  ????if($meta_box_value?==?"") ??????$meta_box_value?=?$meta_box['std'];  ????//?自定義字段標(biāo)題 ????echo'<h3>'.$meta_box['title'].'</h3>';  ????//?自定義字段輸入框 ????echo?'<textarea>'.$meta_box_value.'</textarea><br>'; ??} ??? ??echo?'<input>';}

三、創(chuàng)建自定義字段模塊

?????下面代碼將在文章編輯頁添加自定義字段模塊,這其中這用了WordPress的添加模塊函數(shù)WordPress設(shè)置獨(dú)立的Description和Keywords。這與之前的文章WordPress設(shè)置獨(dú)立的Description和Keywords所做的工作恰好相反。

function?create_meta_box()?{ ??if?(?function_exists('add_meta_box')?)?{ ????add_meta_box(?'new-meta-boxes',?'自定義模塊',?'new_meta_boxes',?'post',?'normal',?'high'?); ??}}

四、保存文章數(shù)據(jù)

?????之前所有準(zhǔn)備都做好了,最重要的還是保存我們的自定義字段中的信息。

function?save_postdata(?$post_id?)?{ ??global?$new_meta_boxes; ??? ??if?(?!wp_verify_nonce(?$_POST['ludou_metaboxes_nonce'],?plugin_basename(__FILE__)?)) ????return; ??? ??if?(?!current_user_can(?'edit_posts',?$post_id?)) ????return; ??????????????? ??foreach($new_meta_boxes?as?$meta_box)?{ ????$data?=?$_POST[$meta_box['name'].'_value'];  ????if($data?==?"") ??????delete_post_meta($post_id,?$meta_box['name'].'_value',?get_post_meta($post_id,?$meta_box['name'].'_value',?true)); ????else ??????update_post_meta($post_id,?$meta_box['name'].'_value',?$data); ???}}

五、將函數(shù)連接到指定action(動(dòng)作)

?????這是最后一步,也是最重要的一步,我們要做的是將函數(shù)連接到指定action(動(dòng)作),以讓W(xué)ordPress程序執(zhí)行我們之前編寫的函數(shù):

add_action('admin_menu',?'create_meta_box'); add_action('save_post',?'save_postdata');

?????好了,我們要做的就是這些了,現(xiàn)在你可以在你的主題中調(diào)用這兩個(gè)自定義字段了,用文本編輯器打開主題目錄下的header.php,將以下代碼復(fù)制到之前,就可以給你的網(wǎng)頁自定義description和keywords標(biāo)簽了,更具體的操作請使用搜索引擎

<?phpif  (is_single()) {   // 自定義字段名稱為 description_value   $description = get_post_meta($post->ID,?"_description_value",?true);  ??//?自定義字段名稱為?keywords_value ??$keywords?=?get_post_meta($post-&gt;ID,?"_keywords_value",?true);  ??//?去除不必要的空格和HTML標(biāo)簽 ??$description?=?trim(strip_tags($description)); ??$keywords?=?trim(strip_tags($keywords));  ??echo?'<meta><meta>'; } ?&gt;

推薦學(xué)習(xí):《WordPress設(shè)置獨(dú)立的Description和Keywords

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊11 分享