工具

https://jeremyhixon.com/tool/wordpress-meta-box-generator/

使用

生成代码

  1. /**
  2. * Generated by the WordPress Meta Box generator
  3. * at http://jeremyhixon.com/tool/wordpress-meta-box-generator/
  4. */
  5. function mymetabox_get_meta( $value ) {
  6. global $post;
  7. $field = get_post_meta( $post->ID, $value, true );
  8. if ( ! empty( $field ) ) {
  9. return is_array( $field ) ? stripslashes_deep( $field ) : stripslashes( wp_kses_decode_entities( $field ) );
  10. } else {
  11. return false;
  12. }
  13. }
  14. function mymetabox_add_meta_box() {
  15. add_meta_box(
  16. 'mymetabox-mymetabox',
  17. __( 'mymetabox', 'mymetabox' ),
  18. 'mymetabox_html',
  19. 'post',
  20. 'normal',
  21. 'default'
  22. );
  23. }
  24. add_action( 'add_meta_boxes', 'mymetabox_add_meta_box' );
  25. function mymetabox_html( $post) {
  26. wp_nonce_field( '_mymetabox_nonce', 'mymetabox_nonce' ); ?>
  27. <p>test customize meta box</p>
  28. <p>
  29. <label for="mymetabox_aa"><?php _e( 'aa', 'mymetabox' ); ?></label><br>
  30. <input type="text" name="mymetabox_aa" id="mymetabox_aa" value="<?php echo mymetabox_get_meta( 'mymetabox_aa' ); ?>">
  31. </p> <p>
  32. <label for="mymetabox_bb"><?php _e( 'bb', 'mymetabox' ); ?></label><br>
  33. <textarea name="mymetabox_bb" id="mymetabox_bb" ><?php echo mymetabox_get_meta( 'mymetabox_bb' ); ?></textarea>
  34. </p> <p>
  35. <label for="mymetabox_cc"><?php _e( 'cc', 'mymetabox' ); ?></label><br>
  36. <select name="mymetabox_cc" id="mymetabox_cc">
  37. <option <?php echo (mymetabox_get_meta( 'mymetabox_cc' ) === 'cc-1' ) ? 'selected' : '' ?>>cc-1</option>
  38. <option <?php echo (mymetabox_get_meta( 'mymetabox_cc' ) === 'cc-2' ) ? 'selected' : '' ?>>cc-2</option>
  39. <option <?php echo (mymetabox_get_meta( 'mymetabox_cc' ) === 'cc-3' ) ? 'selected' : '' ?>>cc-3</option>
  40. </select>
  41. </p> <p>
  42. <input type="checkbox" name="mymetabox_dd" id="mymetabox_dd" value="dd" <?php echo ( mymetabox_get_meta( 'mymetabox_dd' ) === 'dd' ) ? 'checked' : ''; ?>>
  43. <label for="mymetabox_dd"><?php _e( 'dd', 'mymetabox' ); ?></label> </p> <p>
  44. <input type="radio" name="mymetabox_ee" id="mymetabox_ee_0" value="ee-1" <?php echo ( mymetabox_get_meta( 'mymetabox_ee' ) === 'ee-1' ) ? 'checked' : ''; ?>>
  45. <label for="mymetabox_ee_0">ee-1</label><br>
  46. <input type="radio" name="mymetabox_ee" id="mymetabox_ee_1" value="ee-2" <?php echo ( mymetabox_get_meta( 'mymetabox_ee' ) === 'ee-2' ) ? 'checked' : ''; ?>>
  47. <label for="mymetabox_ee_1">ee-2</label><br>
  48. </p><?php
  49. }
  50. function mymetabox_save( $post_id ) {
  51. if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
  52. if ( ! isset( $_POST['mymetabox_nonce'] ) || ! wp_verify_nonce( $_POST['mymetabox_nonce'], '_mymetabox_nonce' ) ) return;
  53. if ( ! current_user_can( 'edit_post', $post_id ) ) return;
  54. if ( isset( $_POST['mymetabox_aa'] ) )
  55. update_post_meta( $post_id, 'mymetabox_aa', esc_attr( $_POST['mymetabox_aa'] ) );
  56. if ( isset( $_POST['mymetabox_bb'] ) )
  57. update_post_meta( $post_id, 'mymetabox_bb', esc_attr( $_POST['mymetabox_bb'] ) );
  58. if ( isset( $_POST['mymetabox_cc'] ) )
  59. update_post_meta( $post_id, 'mymetabox_cc', esc_attr( $_POST['mymetabox_cc'] ) );
  60. if ( isset( $_POST['mymetabox_dd'] ) )
  61. update_post_meta( $post_id, 'mymetabox_dd', esc_attr( $_POST['mymetabox_dd'] ) );
  62. else
  63. update_post_meta( $post_id, 'mymetabox_dd', null );
  64. if ( isset( $_POST['mymetabox_ee'] ) )
  65. update_post_meta( $post_id, 'mymetabox_ee', esc_attr( $_POST['mymetabox_ee'] ) );
  66. }
  67. add_action( 'save_post', 'mymetabox_save' );
  68. /*
  69. Usage: mymetabox_get_meta( 'mymetabox_aa' )
  70. Usage: mymetabox_get_meta( 'mymetabox_bb' )
  71. Usage: mymetabox_get_meta( 'mymetabox_cc' )
  72. Usage: mymetabox_get_meta( 'mymetabox_dd' )
  73. Usage: mymetabox_get_meta( 'mymetabox_ee' )
  74. */

wordpress 生成自定义 meta box的更多相关文章

  1. WordPress 添加Meta Box的方法步骤

    需要使用到add meta boxes Action,该Action允许我们为任何文章类型注册Meta Box,在该Action中,我们需要使用add_meta_box()方法来添加Meta Box的 ...

  2. testng生成自定义html报告

    转自:https://blog.csdn.net/kdslkd/article/details/51198433 testng原生的或reportng的报告总有些不符合需要,尝试生成自定义测试报告,用 ...

  3. 编写 Dockerfile 生成自定义镜像

    一般情况下我们可以从公共渠道诸如 DockerHub 获取镜像上获取镜像,但是在实际生产过程中,往往需要定制化的镜像,例如修改一些配置文件,增加一些特殊的命令或软件等需求,这时就需要通过编写 Dock ...

  4. node生成自定义命令(yargs/commander)

    第一部分可以生成一个自定义命令,例如常见的”express”,yargs和commander则可以在生成的自定义命令上做扩展,yargs将命令扩展成类似express --l xx的形式;而comma ...

  5. 通过用 .NET 生成自定义窗体设计器来定制应用程序

    通过用 .NET 生成自定义窗体设计器来定制应用程序 https://www.microsoft.com/china/MSDN/library/netFramework/netframework/Cu ...

  6. 用PowerDesigner生成自定义建表语句

    原文:用PowerDesigner生成自定义建表语句 我们经常用PowerDesigner来进行数据库表结构的设计,并且设计出来的表比较直观的看出之间的相互关系,方便理解:但其自动生成的脚本并不一定符 ...

  7. javascript生成自定义的arcgis simpletoolbar

    javascript生成自定义的arcgis simpletoolbar 最近在学习ARCGIS for Javascript过程中,在ESRI的在线帮助上看见了这样一个示例,查看源码后,觉得左侧工具 ...

  8. 使用位图字体工具BMFont从图片生成自定义字体

    转载自:http://blog.csdn.net/keshuiyun/article/details/9960667 BMFont下载地址: http://www.angelcode.com/prod ...

  9. Android生成自定义二维码

    前面说过两种二维码扫描方式,现在说如何生成自定义酷炫二维码.二维码生成需要使用Google开源库Zxing,Zxing的项目地址:https://github.com/ZBar/ZBar,我们只需要里 ...

随机推荐

  1. linux内核第二周

    chapter 1 知识点梳理 (一)计算机是如何工作的?(总结)——三个法宝 ①存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: ②函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语 ...

  2. 20162314 Sortingtest-work after class

    20162314 Sortingtest-work after class Content Data : 90 8 7 56 123 235 9 1 653. Use JDB or IDEA to t ...

  3. sudo fdisk -l

      施其振 2015/1/31 22:06:26 第一行十大5 施其振 2015/1/31 22:06:39 第一行sda5 施其振 2015/1/31 22:06:49 是你的固态硬盘 施其振 20 ...

  4. [BZOJ]BST again

    Description 求有多少棵大小为n的深度为h的二叉树.(树根深度为0:左右子树有别:答案对1000000007取模) Input 第一行一个整数T,表示数据组数. 以下T行,每行2个整数n和h ...

  5. 【bzoj2563】阿狸和桃子的游戏(贪心+构造)

    题目传送门:bzoj2563 先膜拜一波PoPoQQQ的题解:BZOJ 2563 阿狸和桃子的游戏 贪心 其实我们可以这样看:把一条边的权值均分到两个端点,那么取到两个端点就能得到这条边的边权,如果只 ...

  6. LeetCode——Increasing Triplet Subsequence

    Question Given an unsorted array return whether an increasing subsequence of length 3 exists or not ...

  7. 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B题

    2017-09-24 19:16:38 writer:pprp 题目链接:https://www.jisuanke.com/contest/877 题目如下: You are given a list ...

  8. MapReduce-实践2

    进阶实践4:  mapper,reducer输出数据压缩 应用场景 当mapper或者reducer的输出数量比较大,会影响shuffle阶段远程拷贝的网络性能,以及对存储容量的要求:这个时候可以考虑 ...

  9. select * from table_name where 1=1的

    我们先来看看这个语句的结果:select * from table where 1=1,其中where 1=1,由于1=1永远是成立的,返回TRUE,条件为真:所以,这条语句,就相当于select * ...

  10. codeforces246E Blood Cousins Return

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...