我们在WordPress & # 20013编写文章的时候,经常会用到一些自定义字段,如网页描述描述& # 21644;关键词关键词& # 36825;两个meta & # 26631签,关于这两个标签,可以看我之前写过的一篇文章:WordPress & # 35774置独立的描述& # 21644;关键词
通常在添加自定义字段和其值的时候,我们都是手动去”自定义字段”模块下拉框中去选择相应的字段,然后再输入其值,最后还要提交等待一小段时间,似乎有点麻烦。那么可不可以给这些常用的自定义字段创建一个单独的面板,直接在里面填内容就可以了呢?就像文章标签,直接添加标签即可,不需要单独提交。答案是可以的,下面是效果图:
下面我将教你如何操作,以下所有代码放到当前主题的functions.php & # 20013即可
一、创建需要的字段信息这里将以添加两个自定义字段,名称分别为_ description _ value & # 21644_ keywords _ value & # 65292你可以给下面数组添加多个元素,实现添加多个自定义字段的目的。
数组第一个元素名称& # 20026;自定义字段的名称,在本代码中自定义字段的名称为姓名& # 20540;加_ value & # 65292以防止与其他代码发生冲突,如_ description _ value & # 65307std & # 20026自定义字段的默认值,当你发表文章时该自定义字段没填任何值,那么将取默认值;title & # 20026自定义字段模块的标题,如文章编辑页的”摘要”、”分类”和”标签”,这些都是模块名称。
$ new _ meta _ boxes = array(” description ” = & gt;array(” name ” = >;” _description “,” std” = >”这里填默认的网页描述”,” title ” = & gt”网页描述:),“关键词”= & gtarray(” name ” = >;” _keywords “,” STD ” = >;”这里填默认的网页关键字”,” title ” = & gt”关键字:”));二、创建自定义字段输入框以下代码将用于创建自定义域以及输入框,照写就是了
函数new _ meta _ box(){ global $ post,$ new _ meta _ boxesforeach($ 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 ‘];// 自定义字段标题回声’ & lth3 & gt’。$meta_box[‘title’]。& lt/H3 & gt;’;// 自定义字段输入框回声’ & lttextarea cols=”60″ rows=”3″ name= ” “。$meta_box[‘name’]。_ value ” & gt。$meta_box_value。& lt/textarea & gt;& ltbr/>;;} echo ‘ & ltinput type = ” hidden ” name = ” ludou _ metaboxes _ nonce ” id = ” ludou _ metaboxes _ nonce ” value = ” ‘。’ WP _ create _ nonce(plugin _ basename(_ _ FILE _ _)。'”/>;;}三、创建自定义字段模块下面代码将在文章编辑页添加自定义字段模块,这其中这用了WordPress & # 30340添加模块函数add _ meta _ box & # 12290这与之前的文章WordPress & # 25991章编辑页删除相关模块所做的工作恰好相反。
function create _ meta _ box(){ if(function _ exists(‘ add _ meta _ box ‘){ add _ meta _ box(‘ new-meta-box ‘,’ & # 33258;定义模块’、’ new_meta_boxes ‘、’ post ‘、’ normal ‘、’ high ‘);}}四、保存文章数据之前所有准备都做好了,最重要的还是保存我们的自定义字段中的信息。
函数save _ postdata($ post _ id){ global $ new _ meta _ boxes;如果(!WP _ verify _ nonce($ _ POST[‘ ludou _ metaboxes _ nonce ‘],plugin _ basename(_ _ FILE _ _))return;如果(!current_user_can( ‘edit_posts ‘,$post_id))返回;foreach($ new _ meta _ box 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);}}五、将函数连接到指定行动& # 65288;动作)这是最后一步,也是最重要的一步,我们要做的是将函数连接到指定行动& # 65288;动作),以让WordPress & # 31243序执行我们之前编写的函数:
add_action(‘admin_menu ‘,’ create _ meta _ box ‘);add_action(‘save_post ‘,’ save _ post data ‘);好了,我们要做的就是这些了,现在你可以在你的主题中调用这两个自定义字段了,用文本编辑器打开主题目录下的header.php & # 65292将以下代码复制到& lt/head & gt;之前,就可以给你的网页自定义描述& # 21644;关键词& # 26631;签了,更具体的操作请使用搜索引擎:
& lt?phpif(is _ single()){//& # 33258;定义字段名称为description _ value $ description = get _ post _ meta($ post-& gt;ID,“_description_value”,true);// 自定义字段名称为keywords _ value $ keywords = get _ post _ meta($ post-& gt;ID,“_keywords_value”,true);// 去除不必要的空格和HTML & # 26631签$ description = trim(strip _ tags($ description));$ keywords = trim(strip _ tags($ keywords));回声’ & ltmeta name=”description” content= ” “。$description”/>;& ltmeta name=”keywords” content= ” “。$keywords”/>;;}?& gt推荐学习:《WordPress & # 25945程》
以上是对WordPress如何添加自定义字段面板的简要分析。更多信息请关注草根吧VPS其他相关文章!