Php 如何在WordPress中保存复选框元框?

Php 如何在WordPress中保存复选框元框?,php,wordpress,Php,Wordpress,我试图在WordPress中的自定义元框中添加一个复选框,但在保存时遇到问题-每当我选中复选框并更新帖子/页面时,它都会再次未选中 以下是我使用的代码: add_meta_box( 'sl-meta-box-sidebar', // id 'Sidebar On/Off', // title 'sl_meta_box_sidebar', // callback function 'page',

我试图在WordPress中的自定义元框中添加一个复选框,但在保存时遇到问题-每当我选中复选框并更新帖子/页面时,它都会再次未选中

以下是我使用的代码:

add_meta_box(
    'sl-meta-box-sidebar',      // id
    'Sidebar On/Off',           // title
    'sl_meta_box_sidebar',      // callback function
    'page',                     // type of write screen
    'side',                     // context
    'low'                       // priority
);

function sl_meta_box_sidebar() {
    global $meta; sl_post_meta( $post->ID ); ?>
    <input type="checkbox" name="sl_meta[sidebar]" value="<?php echo htmlspecialchars ($meta['sidebar']); ?>" />Check to turn the sidebar <strong>off</strong> on this page.
}
它非常适合文本字段,但复选框无法保存。我不确定保存功能是否错误,或者我是否遗漏了有关复选框值的内容


感谢您的帮助

我以前遇到过这个问题,下面是我如何解决的

首先,创建复选框

<?php
function sl_meta_box_sidebar(){
    global $post;
    $custom = get_post_custom($post->ID);
    $sl_meta_box_sidebar = $custom["sl-meta-box-sidebar"][0]; 
?>

<input type="checkbox" name="sl-meta-box-sidebar" <?php if( $sl_meta_box_sidebar == true ) { ?>checked="checked"<?php } ?> />  Check the Box.
<?php } ?>

/>勾选方框。
接下来是储蓄

<?php
add_action('save_post', 'save_details');

function save_details($post_ID = 0) {
    $post_ID = (int) $post_ID;
    $post_type = get_post_type( $post_ID );
    $post_status = get_post_status( $post_ID );

    if ($post_type) {
    update_post_meta($post_ID, "sl-meta-box-sidebar", $_POST["sl-meta-box-sidebar"]);
    }
   return $post_ID;
} ?>

<?php
add_action('save_post', 'save_details');

function save_details($post_ID = 0) {
    $post_ID = (int) $post_ID;
    $post_type = get_post_type( $post_ID );
    $post_status = get_post_status( $post_ID );

    if ($post_type) {
    update_post_meta($post_ID, "sl-meta-box-sidebar", $_POST["sl-meta-box-sidebar"]);
    }
   return $post_ID;
} ?>