最新公告
  • 欢迎您的光临,本站秉承服务宗旨 履行“站长”责任,资源提供永无止境!立即赞助我们
  • WordPress添加自定义文章栏目

    广告!请自辨真伪
    广告!请自辨真伪 广告!请自辨真伪

    WordPress允许自定义添加文章自定义栏目,如下图,可以在文章编辑的时候,添加一个栏目随着文章发布和更新一起提交。

    WordPress添加自定义文章栏目

    1.注册函数

    首先添加动作,第一个参数为指定WordPress动作类型,第二个参数为指定函数

    1. add_action(‘add_meta_boxes’, ‘fun_plug_add_meta_box’);

    指定函数

    1. function fun_plug_add_meta_box()
    2. {
    3. add_meta_box(‘down_link’, ‘下载地址’, ‘meta_box_down_link_form’, ‘post’, ‘advanced’, ‘high’);
    4. }

    add_meta_box函数功能如下

    $id HTML 代码中设置区域中id属性的值,也是WordPress文章自定义栏目的一个唯一标识符

    $title 区域中的标题名称,支持HTML代码
    $callback 添加的设置区域的显示函数,界面在这个函数里面实现
    $post_type 在 post 还是 page 的编辑页面中显示
    $context 设置区域的显示位置,主编辑区(advanced)、边栏(side)
    $priority 设置区域显示的优先级,high(高),low(低),default(默认)
    $callback_args 回调函数接受的附加参数,一般省略

    回调函数如下:

    1. function meta_box_down_link_form($post)
    2. {
    3. // 创建临时隐藏表单,为了安全
    4. wp_nonce_field(‘meta_box_down_link_form’, ‘meta_box_down_link_form_nonce’);
    5. // 获取之前存储的值
    6. $value = get_post_meta($post->ID, ‘down_link’, true);
    7. ?>
    8. <input type=“text” value=“<?php echo $value?>”>
    9. <?php
    10. }

    至此,后台文章已经正常显示内容了。

    相关解释

    【1】wp_nonce_field函数,本函数为WordPress防止攻击的一个函数,原理是生成一个随意的字符,在保存函数中,验证这个字符是否和提交的字符一致,如果不一致,就说明可能这个内容来自第三方伪造内容提交,而不是在文章页面直接提交。

    当然,如果不写这个函数,也是可以的,在保存的函数中,也不用验证就是了。

    函数第一个参数为唯一标识符,第二个为表单名称,在后面保存文章字段的时候,可以通过$_POST[‘名称’]来获取这个值。

    【2】get_post_meta函数,WordPress中,通过get_post_meta获取保存的文章额外字段,通过update_post_meta保存额外字段。

    2.保存文章数据

    上面注册函数后,也能提交内容了,但是还没有保存内容,所以无法显示东西。需要接管WordPress文章保存函数。

    注册保存文章动作,第二个参数为自定义函数,WordPress会传入一个文章ID参数

    1. add_action(‘save_post’, ‘fun_save_post_down_link’);

    自定义函数,本函数处理文章额外字段的保存

    1. function fun_save_post_down_link($post_id)
    2. {
    3. // 安全检查
    4. // 检查是否发送了一次性隐藏表单内容
    5. if (!isset($_POST[‘meta_box_down_link_form_nonce’])) {
    6. return;
    7. }
    8. // 判断隐藏表单的值与之前是否相同
    9. if (!wp_verify_nonce($_POST[‘meta_box_down_link_form_nonce’], ‘meta_box_down_link_form’)) {
    10. return;
    11. }
    12. // 判断该用户是否有权限
    13. if (!current_user_can(‘edit_post’, $post_id)) {
    14. return;
    15. }
    16. // 判断 Meta Box 是否为空
    17. if (!isset($_POST[‘down_link1’])) {
    18. return;
    19. }
    20. update_post_meta($post_id, ‘down_link’, $_POST[‘down_link1’]);
    21. }

    其中,安全检查中,需要上面的wp_nonce_field支持,如果没有创建这个随机值,就不需要判断。

    首先判断是否有这个值,如果没有,说明提交可能是伪造的。接着判断值是否一致,通过函数wp_verify_nonce来判断,第一个为要对比的值,通过$_POST获取提交过来的值,第二参数为唯一标识符,和wp_nonce_field函数的第一个参数一致。

    接着判断用户是否有权限保存文章,current_user_can函数来判断。

    最后判断是否有提交自定义的值,不为空的话,就使用函数update_post_meta来保存这个数据。

     

    常见问题FAQ

    免费下载或者赞助VIP会员专享资源能否直接商用?
    本站所有资源均收集与各大平台,版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 赞助VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    开通赞助会员或者下载源码 “不完整” 或 “不能用” “版本号不对” 怎么办?
    非常抱歉,资源均收集与网络,你有权利告诉本站,但是本站有选择处理或者不处理的权力,如无法接受请不要购买或开通本站会员。
    开通终身赞助会员能下载全站资源码?
    可以100%下载全站源码资源的,除部分失效资源,失效的可以联系客服尝试恢复。

    发表评论

    • 20472会员总数(位)
    • 22143资源总数(个)
    • 218本周发布(个)
    • 1 今日发布(个)
    • 569稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情
    赞助SVIP享更多特权立即赞助