Checked()在自定义字段中显示两次

时间:2016-06-09 作者:Marc P

我已经成功应用了一个元框和复选框字段,可以保存我的设置。然而,在我的元框字段中似乎显示了一些剩余代码。

checked=\'checked\'正确显示在输入复选框中,但它也会再次出现在输入标记之前,这是我不想要的。这是输出:

checked=\'checked\'<input type="checkbox" id="my_meta_box_check1" name="my_meta_box_check1"  checked=\'checked\' /><label for="my_meta_box_check1">Do not check this</label>
在我的功能中。php中,我使用了echo输出方法以及连接:

/* Meta Box: Create container */
add_action( \'add_meta_boxes\', \'my_meta_box_add\' );
function my_meta_box_add() {
    add_meta_box( \'my-meta-box\', \'Rockwood Options\', \'my_meta_box_fields\', \'page\', \'side\', \'high\' );
}

/* Meta Box: Create individual fields */
function my_meta_box_fields($post) {
    $values = get_post_custom( $post->ID );
    $check = isset( $values[\'my_meta_box_check1\'] ) ? esc_attr( $values[\'my_meta_box_check1\'][0] ) : \'\';
    wp_nonce_field( \'my_meta_box_nonce\', \'meta_box_nonce\' );
    echo \'<input type="checkbox" id="my_meta_box_check1" name="my_meta_box_check1" \' . checked( $check, "on" ) . \' />\';
    echo \'<label for="my_meta_box_check1">Do not check this</label>\';
}

/* Meta Box: Save fields */
add_action( \'save_post\', \'my_meta_box_save\' );
function my_meta_box_save( $post_id ) {
    // Bail if we\'re doing an auto save
    if( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) return;
    // if our nonce isn\'t there, or we can\'t verify it, bail
    if( !isset( $_POST[\'meta_box_nonce\'] ) || !wp_verify_nonce( $_POST[\'meta_box_nonce\'], \'my_meta_box_nonce\' ) ) return;
    // if our current user can\'t edit this post, bail
    if( !current_user_can( \'edit_post\', $post_id ) ) return;
    // This is purely my personal preference for saving check-boxes
    $chk = isset( $_POST[\'my_meta_box_check1\'] ) && $_POST[\'my_meta_box_check1\'] ? \'on\' : \'off\';
        update_post_meta( $post_id, \'my_meta_box_check1\', $chk );
}
我怀疑我没有正确地应用串联。有人对此有什么建议吗?

1 个回复
最合适的回答,由SO网友:dan9vu 整理而成

checked() 默认情况下将回显结果。这就是问题所在。

要连接,需要通过将第三个参数指定为false:

echo \'<input type="checkbox" id="my_meta_box_check1" name="my_meta_box_check1" \' . checked( $check, "on", false ) . \'/>\';

相关推荐

如何在Functions.php中链接style.css

我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();