php 创建Metabox
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 创建Metabox相关的知识,希望对你有一定的参考价值。
<?php
add_action( 'admin_init', 'add_meta_boxes' );
function add_meta_boxes() {
add_meta_box( 'hotel_list', 'Hotels Availibility', 'hotel_field', 'event', 'advanced', 'high' );
}
function hotel_field() {
global $post;
$hotels = get_posts( array(
'post_type' => 'hotel',
'numberposts' => -1,
'orderby' => 'post_title',
'order' => 'ASC'
) ); ?>
<input type="hidden" name="hotels_once" value="<?php echo wp_create_nonce( basename( __FILE__ ) ); ?>" />
<?php
$selected = get_post_meta( $post->ID, 'ebd_event_hotels_' . $i, true );
if ( empty($selected) )
{
$selected = [];
}
?>
<table class="form-table">
<tr valign="top">
<th scope="row" style="width: 20%;">
<label for="hotels">Hotel</label>
</th>
<td>
<select class="selectize" multiple name="hotels[]" placeholder="Choose available hotels">
<?php foreach ( $hotels as $hotel ) : ?>
<option value="<?php echo $hotel->ID; ?>" <?php echo (in_array( $hotel->ID, $selected )) ? 'selected="selected"' : ''; ?>><?php echo $hotel->post_title; ?></option>
<?php endforeach; ?>
</select>
</td>
</tr>
</table>
<?php
}
// save our metabox
add_action( 'save_post', 'save_hotel_field' );
function save_hotel_field( $post_id ) {
// only run this for event post type
if ( 'event' != get_post_type( $post_id ) )
return $post_id;
// verify nonce
if ( empty( $_POST['hotels_once'] ) || !wp_verify_nonce( $_POST['hotels_once'], basename( __FILE__ ) ) )
return $post_id;
// check autosave
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return $post_id;
// check permissions
if ( !current_user_can( 'edit_post', $post_id ) )
return $post_id;
update_post_meta( $post_id, 'ebd_event_hotels', array_map( 'intval', $_POST['hotels'] ) );
}
以上是关于php 创建Metabox的主要内容,如果未能解决你的问题,请参考以下文章
php 使用Metabox设置类
php Post Editor屏幕中的WordPress Checkbox Metabox - 作为插件添加
php 将Yoast SEO优先级更改为“低”以在Yoast metabox之前获得ACF字段。
php 卸妆o metabox do OCEANWP Extrasdapáginadeediçãodosprodutos do WooCommerce
如何在自定义帖子类型上使用Woocommerce的二级图像上传Metabox?
Wordpress 自定义 Metabox 复选框保存问题