Wordpress 如何设置元框中复选框的默认值

Wordpress 如何设置元框中复选框的默认值,wordpress,wordpress-theming,meta-boxes,Wordpress,Wordpress Theming,Meta Boxes,我知道这个问题出现过很多次,但我找不到答案。 我有一个简单的复选框,一切正常,除了默认值总是空的。 这是我的代码: function portfolio_additional_settings($post) { $meta_port_cats = get_post_meta($post->ID, '_portfolio_meta_cats', true); wp_nonce_field( 'update_portfolio_additional_settin

我知道这个问题出现过很多次,但我找不到答案。 我有一个简单的复选框,一切正常,除了默认值总是空的。 这是我的代码:

function portfolio_additional_settings($post) {
        $meta_port_cats = get_post_meta($post->ID, '_portfolio_meta_cats', true);
        wp_nonce_field( 'update_portfolio_additional_settings', 'update_portfolio_additional_nonce' );
            ?>
        <div>
        <input type="checkbox" name="portfolio_meta_cats_field" id="portfolio_meta_cats_field" value="1" <?php checked($meta_port_cats, 1); ?> />
                    <label for="portfolio_meta_cats_field"><?php esc_html_e( 'Categories', 'portfolio' ); ?></label>
        </div>
}

function save_portfolio_additional_settings($post_id, $post) {

            $edit_cap = get_post_type_object( $post->post_type )->cap->edit_post;
            if( !current_user_can( $edit_cap, $post_id )) {
                return;
            }
            if( !isset( $_POST['update_portfolio_additional_nonce']) || !wp_verify_nonce( $_POST['update_portfolio_additional_nonce'], 'update_portfolio_additional_settings' )) {
                return;
            }

            if(array_key_exists('portfolio_meta_cats_field', $_POST)) {
                update_post_meta( 
                    $post_id, 
                    '_portfolio_meta_cats', 
                    sanitize_text_field($_POST['portfolio_meta_cats_field'])
                );
            } else {
                update_post_meta( 
                    $post_id, 
                    '_portfolio_meta_cats', null);
            }
    }
        add_action( 'save_post', 'save_portfolio_additional_settings', 10, 2 );
功能组合\附加\设置($post){
$meta_port_cats=get_post_meta($post->ID,'u portfolio_meta_cats',true);
wp_nonce_字段('update_portfolio_additional_settings'、'update_portfolio_additional_nonce');
?>
}
函数保存\u公文包\u其他\u设置($post\u id,$post){
$edit\u cap=get\u post\u type\u对象($post->post\u type)->cap->edit\u post;
如果(!当前用户可以($edit\u cap,$post\u id)){
返回;
}
如果(!isset($_POST['update_portfolio_additional_nonce']))| |!wp_verify_nonce($_POST['update_portfolio_additional_nonce'],'update_portfolio_additional_settings')){
返回;
}
如果(数组\键\存在('投资组合\元\猫\字段',$\后)){
更新发布元数据(
$post_id,
"投资组合","元猫",,
清理文本字段($\u POST['portfolio\u meta\u cats\u field'])
);
}否则{
更新发布元数据(
$post_id,
'投资组合\元\猫',空);
}
}
添加操作('save_post'、'save_portfolio\u additional_settings',10,2);
默认情况下如何通过检查?我做错了什么

谢谢。

请按以下步骤操作:


对不起,结果和我的一样