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,我们只需要里 ...
随机推荐
- 20145230熊佳炜《网络对抗》实验九:web安全基础实践
20145230熊佳炜<网络对抗>实验九:web安全基础实践 webgoat webgoat的中文是代罪羔羊的意思,而它是一个有很多漏洞的web应用程序,我们可以利用它来研究关于web应用 ...
- 【网络结构】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications论文解析
目录 0. Paper link 1. Overview 2. Depthwise Separable Convolution 2.1 architecture 2.2 computational c ...
- ubuntu16.04 python3.5 opencv的安装与卸载(转载)
转载https://blog.csdn.net/qq_37541097/article/details/79045595 Ubuntu16.04 自带python2.7和python3.5两个版本,默 ...
- L1-3 宇宙无敌加法器 - 令人激动的一道题目
L1-3 宇宙无敌加法器 - 令人激动的一道题目 感觉好久没有这么认真的做一道题了,今天看到一句话, 说是编程是一个工程型的工作,想要学好,"无他,唯手熟尔" 之前觉得自己笨,怀疑 ...
- codeforces796E Exam Cheating
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- Java循环跳转语句之 continue
continue 的作用是跳过循环体中剩余的语句执行下一次循环. 例如,打印 1--10 之间所有的偶数,使用 continue 语句实现代码为: 运行结果: continue与break的区别就是, ...
- 简单UML
http://www.cnblogs.com/pluviophile/p/7542017.html,看了这篇博文感觉这个例子有用遂搬运过来方便查阅 上面的类图就体现了所需要了解的类的6个基本关系 该类 ...
- Uncaught SyntaxError: Unexpected end of input 突然报了这个错
最后排查:把 return true 注掉好了,接着在打开注释,依然不报错.最后不报错了.0.0 ~~~
- 基于事件的 JavaScript 编程:异步与同
JavaScript的优势之一是其如何处理异步代码.异步代码会被放入一个事件队列,等到所有其他代码执行后才进行,而不会阻塞线程.然而,对于初学者来说,书写异步代码可能会比较困难.而在这篇文章里,我将会 ...
- [Vue]组件——实现动态组件:keep-alive的使用
1.在app.vue中用一个 <keep-alive> 元素将其动态组件包裹起来: keepAlive为true时,第一次被创建的时候缓存下来,为false时,不会缓存 <keep- ...