WordPress网站如何添加文章自定义字段填写面板
WordPress网站文章自定义字段可以按照自己需求进行数据的填写。例网页描述description和关键词keywords这两个meta标签。
通常WordPress建网站在添加自定义字段和其值的时候,我们都是手动去"自定义字段"模块下拉框中去选择相应的字段,然后再输入其值,最后还要提交等待一小段时间,似乎有点麻烦。
那么可不可以给这些常用的自定义字段创建一个单独的面板,直接在里面填内容就可以了呢?就像文章标签,直接添加标签即可,不需要单独提交。答案是可以的,下面是效果图:
下面介绍一下如何制作这种文章自定义字段面板的方法。
第一步:添加两个自定义字段,名称分别为description_value和keywords_value,你可以给下面数组添加多个元素,实现添加多个自定义字段的目的。
1 |
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;width:100%;"><div class="php codecolorer" style="white-space:nowrap"><span style="color: #000088;">$new_meta_boxes</span> <span style="color: #339933;">=</span><br><span style="color: #990000;">array</span><span style="color: #009900;">(</span><br><span style="color: #0000ff;">"description"</span> <span style="color: #339933;">=></span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><br><span style="color: #0000ff;">"name"</span> <span style="color: #339933;">=></span> <span style="color: #0000ff;">"description"</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">"std"</span> <span style="color: #339933;">=></span> <span style="color: #0000ff;">"这里填默认的网页描述"</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">"title"</span> <span style="color: #339933;">=></span> <span style="color: #0000ff;">"网页描述:"</span><span style="color: #009900;">)</span><span style="color: #339933;">,</span><br><br><span style="color: #0000ff;">"keywords"</span> <span style="color: #339933;">=></span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><br><span style="color: #0000ff;">"name"</span> <span style="color: #339933;">=></span> <span style="color: #0000ff;">"keywords"</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">"std"</span> <span style="color: #339933;">=></span> <span style="color: #0000ff;">"这里填默认的网页关键字"</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">"title"</span> <span style="color: #339933;">=></span> <span style="color: #0000ff;">"关键字:"</span><span style="color: #009900;">)</span><br><span style="color: #009900;">)</span><span style="color: #339933;">;</span></div></div> |
第二步:创建自定义域以及输入框;
1 |
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;width:100%;"><div class="php codecolorer" style="white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> new_meta_boxes<span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span><br><span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$post</span><span style="color: #339933;">,</span> <span style="color: #000088;">$new_meta_boxes</span><span style="color: #339933;">;</span><br><br><span style="color: #b1b100;">foreach</span><span style="color: #009900;">(</span><span style="color: #000088;">$new_meta_boxes</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$meta_box</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span><br><span style="color: #000088;">$meta_box_value</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">(</span><span style="color: #000088;">$post</span><span style="color: #339933;">-></span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_value'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br><br><span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #000088;">$meta_box_value</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">""</span><span style="color: #009900;">)</span><br><span style="color: #000088;">$meta_box_value</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'std'</span><span style="color: #009900;">]</span><span style="color: #339933;">;</span><br><br><span style="color: #b1b100;">echo</span><span style="color: #0000ff;">'<input type="hidden" name="'</span><span style="color: #339933;">.</span><span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_noncename" id="'</span><span style="color: #339933;">.</span><span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_noncename" value="'</span><span style="color: #339933;">.</span>wp_create_nonce<span style="color: #009900;">(</span> plugin_basename<span style="color: #009900;">(</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">)</span> <span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'" />'</span><span style="color: #339933;">;</span><br><br><span style="color: #666666; font-style: italic;">// 自定义字段标题</span><br><span style="color: #b1b100;">echo</span><span style="color: #0000ff;">'<h4>'</span><span style="color: #339933;">.</span><span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'title'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'</h4>'</span><span style="color: #339933;">;</span><br><br><span style="color: #666666; font-style: italic;">// 自定义字段输入框</span><br><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'<textarea cols="60" rows="3" name="'</span><span style="color: #339933;">.</span><span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_value">'</span><span style="color: #339933;">.</span><span style="color: #000088;">$meta_box_value</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'</textarea><br />'</span><span style="color: #339933;">;</span><br><span style="color: #009900;">}</span><br><span style="color: #009900;">}</span></div></div> |
第三步:在文章编辑页添加自定义字段模块,这其中这用了WordPress的添加模块函数add_meta_box。
1 2 |
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;width:100%;"><div class="php codecolorer" style="white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> create_meta_box<span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span><br><span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$theme_name</span><span style="color: #339933;">;</span><br><br><span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'add_meta_box'</span><span style="color: #009900;">)</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span><br> add_meta_box<span style="color: #009900;">(</span> <span style="color: #0000ff;">'new-meta-boxes'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'自定义模块'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'new_meta_boxes'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'normal'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'high'</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span><br><span style="color: #009900;">}</span><br><span style="color: #009900;">}</span></div></div> |
第四步:保存文章数据。之前所有准备都做好了,最重要的还是保存我们的自定义字段中的信息。
1 2 3 4 |
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;width:100%;"><div class="php codecolorer" style="white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> save_postdata<span style="color: #009900;">(</span> <span style="color: #000088;">$post_id</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span><br><span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$post</span><span style="color: #339933;">,</span> <span style="color: #000088;">$new_meta_boxes</span><span style="color: #339933;">;</span><br><br><span style="color: #b1b100;">foreach</span><span style="color: #009900;">(</span><span style="color: #000088;">$new_meta_boxes</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$meta_box</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span><br><span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span> <span style="color: #339933;">!</span>wp_verify_nonce<span style="color: #009900;">(</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_noncename'</span><span style="color: #009900;">]</span><span style="color: #339933;">,</span> plugin_basename<span style="color: #009900;">(</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">)</span> <span style="color: #009900;">)</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span><br><span style="color: #b1b100;">return</span> <span style="color: #000088;">$post_id</span><span style="color: #339933;">;</span><br><span style="color: #009900;">}</span><br><br><span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span> <span style="color: #0000ff;">'page'</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'post_type'</span><span style="color: #009900;">]</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span><br><span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span> <span style="color: #339933;">!</span>current_user_can<span style="color: #009900;">(</span> <span style="color: #0000ff;">'edit_page'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$post_id</span> <span style="color: #009900;">)</span><span style="color: #009900;">)</span><br><span style="color: #b1b100;">return</span> <span style="color: #000088;">$post_id</span><span style="color: #339933;">;</span><br><span style="color: #009900;">}</span><br><span style="color: #b1b100;">else</span> <span style="color: #009900;">{</span><br><span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span> <span style="color: #339933;">!</span>current_user_can<span style="color: #009900;">(</span> <span style="color: #0000ff;">'edit_post'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$post_id</span> <span style="color: #009900;">)</span><span style="color: #009900;">)</span><br><span style="color: #b1b100;">return</span> <span style="color: #000088;">$post_id</span><span style="color: #339933;">;</span><br><span style="color: #009900;">}</span><br><br><span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_value'</span><span style="color: #009900;">]</span><span style="color: #339933;">;</span><br><br><span style="color: #b1b100;">if</span><span style="color: #009900;">(</span>get_post_meta<span style="color: #009900;">(</span><span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_value'</span><span style="color: #009900;">)</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">""</span><span style="color: #009900;">)</span><br> add_post_meta<span style="color: #009900;">(</span><span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_value'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br><span style="color: #b1b100;">elseif</span><span style="color: #009900;">(</span><span style="color: #000088;">$data</span> <span style="color: #339933;">!=</span> get_post_meta<span style="color: #009900;">(</span><span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_value'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><br> update_post_meta<span style="color: #009900;">(</span><span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_value'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br><span style="color: #b1b100;">elseif</span><span style="color: #009900;">(</span><span style="color: #000088;">$data</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">""</span><span style="color: #009900;">)</span><br> delete_post_meta<span style="color: #009900;">(</span><span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_value'</span><span style="color: #339933;">,</span> get_post_meta<span style="color: #009900;">(</span><span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$meta_box</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_value'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br><span style="color: #009900;">}</span><br><span style="color: #009900;">}</span></div></div> |
第五步:将函数连接到指定action(动作)。这是最后一步,也是最重要的一步,我们要做的是将函数连接到指定action(动作),以让WordPress程序执行我们之前编写的函数:
1 2 |
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;width:100%;"><div class="php codecolorer" style="white-space:nowrap">add_action<span style="color: #009900;">(</span><span style="color: #0000ff;">'admin_menu'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'create_meta_box'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br> add_action<span style="color: #009900;">(</span><span style="color: #0000ff;">'save_post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'save_postdata'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></div></div> |
好了,经过以上5步,就可以开发出自己的wordpress自定义字段填写面板了。
由于网站搬家,部分链接失效,如无法下载,请联系站长!谢谢支持!
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » WordPress网站如何添加文章自定义字段填写面板
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » WordPress网站如何添加文章自定义字段填写面板