我创建了一个可用于向帖子添加侧边栏的元数据箱。 get_sidebar函数将根据用户是否检查侧栏单选按钮使用if语句添加到post模板,但我还没有那么远。
到目前为止,元数据显示在编辑器界面中,但是当我检查侧边栏单选按钮时,它会在我更新帖子后返回未选中状态。
这是我用来在帖子更新后检查单选按钮的方法。
$layout = $_POST["layout"];
<input type="radio" name="layout" <?php if (isset($layout) && $layout=="right-sidebar") echo "checked"; ?> value="right-sidebar">
这是我用来创建和更新元数据的完整代码:
<?php
function hill_add_layout_metabox() {
add_meta_box(
'layout_metabox',
'Layout1',
'hill_callback_layout_matabox',
'post',
'side',
'high'
);
}
add_action('add_meta_boxes', 'hill_add_layout_metabox');
function hill_callback_layout_matabox() {
$layout = $_POST["layout"];
?>
<input type="radio" name="layout" <?php if (isset($layout) && $layout=="right-sidebar") echo "checked"; ?> value="right-sidebar"> Right Sidebar
<?php
}
function hill_save_layout_metabox($post_id) {
$is_autosave = wp_is_post_autosave ( $post_id );
$is_revision = wp_is_post_revision ( $post_id );
if ( $is_autosave || $is_revision ) {
return;
}
$layout = $_POST["layout"];
if (isset($layout) && $layout=="right-sidebar") {
update_post_meta( $post_id, $layout );
}
}
add_action('save_post', 'hill_save_layout_metabox');
?>
答案 0 :(得分:0)
如何在帖子中添加自定义元框。请参考以下链接,它将解决您的问题。
https://www.smashingmagazine.com/2011/10/create-custom-post-meta-boxes-wordpress/
http://code.tutsplus.com/tutorials/how-to-create-custom-wordpress-writemeta-boxes--wp-20336
http://www.sitepoint.com/adding-custom-meta-boxes-to-wordpress/
答案 1 :(得分:0)
首先,在保存元值时,添加要保存的值:
这是一个偏好问题,但如果选中其他明智的'',我会将值设置为'on'。
$value = isset($layout) && $layout=='right-sidebar' ? 'on' : ''
update_post_meta( $post_id, 'right-sidebar', $value );
更新帖子后,使用get_post_meta获取您保存的值,并根据需要设置单选按钮; WP checked()
函数对此非常方便:
<?php $check = get_post_meta( $post_id, 'right-sidebar', true ); ?>
<input type="radio" name="layout" <?php checked( $check, 'on' ); ?> value="right-sidebar">