wordpress 生成自定义 meta box
工具
https://jeremyhixon.com/tool/wordpress-meta-box-generator/
使用

生成代码
/**
* Generated by the WordPress Meta Box generator
* at http://jeremyhixon.com/tool/wordpress-meta-box-generator/
*/
function mymetabox_get_meta( $value ) {
global $post;
$field = get_post_meta( $post->ID, $value, true );
if ( ! empty( $field ) ) {
return is_array( $field ) ? stripslashes_deep( $field ) : stripslashes( wp_kses_decode_entities( $field ) );
} else {
return false;
}
}
function mymetabox_add_meta_box() {
add_meta_box(
'mymetabox-mymetabox',
__( 'mymetabox', 'mymetabox' ),
'mymetabox_html',
'post',
'normal',
'default'
);
}
add_action( 'add_meta_boxes', 'mymetabox_add_meta_box' );
function mymetabox_html( $post) {
wp_nonce_field( '_mymetabox_nonce', 'mymetabox_nonce' ); ?>
<p>test customize meta box</p>
<p>
<label for="mymetabox_aa"><?php _e( 'aa', 'mymetabox' ); ?></label><br>
<input type="text" name="mymetabox_aa" id="mymetabox_aa" value="<?php echo mymetabox_get_meta( 'mymetabox_aa' ); ?>">
</p> <p>
<label for="mymetabox_bb"><?php _e( 'bb', 'mymetabox' ); ?></label><br>
<textarea name="mymetabox_bb" id="mymetabox_bb" ><?php echo mymetabox_get_meta( 'mymetabox_bb' ); ?></textarea>
</p> <p>
<label for="mymetabox_cc"><?php _e( 'cc', 'mymetabox' ); ?></label><br>
<select name="mymetabox_cc" id="mymetabox_cc">
<option <?php echo (mymetabox_get_meta( 'mymetabox_cc' ) === 'cc-1' ) ? 'selected' : '' ?>>cc-1</option>
<option <?php echo (mymetabox_get_meta( 'mymetabox_cc' ) === 'cc-2' ) ? 'selected' : '' ?>>cc-2</option>
<option <?php echo (mymetabox_get_meta( 'mymetabox_cc' ) === 'cc-3' ) ? 'selected' : '' ?>>cc-3</option>
</select>
</p> <p>
<input type="checkbox" name="mymetabox_dd" id="mymetabox_dd" value="dd" <?php echo ( mymetabox_get_meta( 'mymetabox_dd' ) === 'dd' ) ? 'checked' : ''; ?>>
<label for="mymetabox_dd"><?php _e( 'dd', 'mymetabox' ); ?></label> </p> <p>
<input type="radio" name="mymetabox_ee" id="mymetabox_ee_0" value="ee-1" <?php echo ( mymetabox_get_meta( 'mymetabox_ee' ) === 'ee-1' ) ? 'checked' : ''; ?>>
<label for="mymetabox_ee_0">ee-1</label><br>
<input type="radio" name="mymetabox_ee" id="mymetabox_ee_1" value="ee-2" <?php echo ( mymetabox_get_meta( 'mymetabox_ee' ) === 'ee-2' ) ? 'checked' : ''; ?>>
<label for="mymetabox_ee_1">ee-2</label><br>
</p><?php
}
function mymetabox_save( $post_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( ! isset( $_POST['mymetabox_nonce'] ) || ! wp_verify_nonce( $_POST['mymetabox_nonce'], '_mymetabox_nonce' ) ) return;
if ( ! current_user_can( 'edit_post', $post_id ) ) return;
if ( isset( $_POST['mymetabox_aa'] ) )
update_post_meta( $post_id, 'mymetabox_aa', esc_attr( $_POST['mymetabox_aa'] ) );
if ( isset( $_POST['mymetabox_bb'] ) )
update_post_meta( $post_id, 'mymetabox_bb', esc_attr( $_POST['mymetabox_bb'] ) );
if ( isset( $_POST['mymetabox_cc'] ) )
update_post_meta( $post_id, 'mymetabox_cc', esc_attr( $_POST['mymetabox_cc'] ) );
if ( isset( $_POST['mymetabox_dd'] ) )
update_post_meta( $post_id, 'mymetabox_dd', esc_attr( $_POST['mymetabox_dd'] ) );
else
update_post_meta( $post_id, 'mymetabox_dd', null );
if ( isset( $_POST['mymetabox_ee'] ) )
update_post_meta( $post_id, 'mymetabox_ee', esc_attr( $_POST['mymetabox_ee'] ) );
}
add_action( 'save_post', 'mymetabox_save' );
/*
Usage: mymetabox_get_meta( 'mymetabox_aa' )
Usage: mymetabox_get_meta( 'mymetabox_bb' )
Usage: mymetabox_get_meta( 'mymetabox_cc' )
Usage: mymetabox_get_meta( 'mymetabox_dd' )
Usage: mymetabox_get_meta( 'mymetabox_ee' )
*/
wordpress 生成自定义 meta box的更多相关文章
- WordPress 添加Meta Box的方法步骤
需要使用到add meta boxes Action,该Action允许我们为任何文章类型注册Meta Box,在该Action中,我们需要使用add_meta_box()方法来添加Meta Box的 ...
- testng生成自定义html报告
转自:https://blog.csdn.net/kdslkd/article/details/51198433 testng原生的或reportng的报告总有些不符合需要,尝试生成自定义测试报告,用 ...
- 编写 Dockerfile 生成自定义镜像
一般情况下我们可以从公共渠道诸如 DockerHub 获取镜像上获取镜像,但是在实际生产过程中,往往需要定制化的镜像,例如修改一些配置文件,增加一些特殊的命令或软件等需求,这时就需要通过编写 Dock ...
- node生成自定义命令(yargs/commander)
第一部分可以生成一个自定义命令,例如常见的”express”,yargs和commander则可以在生成的自定义命令上做扩展,yargs将命令扩展成类似express --l xx的形式;而comma ...
- 通过用 .NET 生成自定义窗体设计器来定制应用程序
通过用 .NET 生成自定义窗体设计器来定制应用程序 https://www.microsoft.com/china/MSDN/library/netFramework/netframework/Cu ...
- 用PowerDesigner生成自定义建表语句
原文:用PowerDesigner生成自定义建表语句 我们经常用PowerDesigner来进行数据库表结构的设计,并且设计出来的表比较直观的看出之间的相互关系,方便理解:但其自动生成的脚本并不一定符 ...
- javascript生成自定义的arcgis simpletoolbar
javascript生成自定义的arcgis simpletoolbar 最近在学习ARCGIS for Javascript过程中,在ESRI的在线帮助上看见了这样一个示例,查看源码后,觉得左侧工具 ...
- 使用位图字体工具BMFont从图片生成自定义字体
转载自:http://blog.csdn.net/keshuiyun/article/details/9960667 BMFont下载地址: http://www.angelcode.com/prod ...
- Android生成自定义二维码
前面说过两种二维码扫描方式,现在说如何生成自定义酷炫二维码.二维码生成需要使用Google开源库Zxing,Zxing的项目地址:https://github.com/ZBar/ZBar,我们只需要里 ...
随机推荐
- dubbo-admin与多注册中心(注册中心集群)
在使用dubbo时,注册中心是一个必要的架构组成成员.当我们的注册中心没有采取集群时,如何在dubbo-admin中配置,我们可以根据dubbo官方文档,很快找到我们的答案. 但是当注册中心集群之后怎 ...
- Vue中使用百度地图——设置地图标注
知识点:创建Map实例,为指定的位置设置标注 参考博客:https://www.cnblogs.com/liuswi/p/3994757.html 1.效果图:初始化地图,设置指定经纬度为地图中心点坐 ...
- DataStage系列教程 (Change Capture)
Change Capture可以比较具有相同列的数据集的差异,得出一个数据集(After)在另一个数据库(Before)的基础上产生的哪些变化.变化类型如表1: 变化代码 变化 中文说明 0 no c ...
- Python学习札记(十三) Function3 函数参数二
参考:函数参数 Note A.关键字参数: 1.关键字参数:**kw 可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple.而关键字参数允许你传入0个或任意个含参数名的 ...
- class.getResource()和getResourceAsStream的用法
转自:http://blog.csdn.net/lcj8/article/details/3502849 class.getResource()的用法 用JAVA获取文件,听似简单,但对于很多像我这样 ...
- Maven 一段时间知识小结2
父 Pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>s ...
- java23种设计模式之三: 适配器模式
一.适配器模式 就是个通过一个中间件转化,可以将不匹配的两件事整合到一起,把不匹配变的匹配. 二.适配器分类 1.类适配器 2.对象适配器 三. 适配器的3种组成 1.类适配器组成 1.2个接口 ...
- FlatBuffer入门笔记
FlatBuffer入门笔记 1 flatbuffer资料 flatbuffer下载地址:https://github.com/google/flatbuffers flatbuffer官方使用文档: ...
- 初学Selenium遇到的那些坑
一.遇到一个下拉选择框,可以点击继续选择: 所以click两次就可以了: 二.国际话问题 bdId.selectByIndex(index);//index位下拉框内容的下标,从0开始, 数组形式[ ...
- LR 的基础分析--y-手打
一.分析Analysis Summary 1.实际参与测试的Vuser为10个 2.总吞吐量(TPS)为208725625bytes 3.平均吞吐量为714814bytes/second 4.总点击数 ...