无法从数据库获取自定义 post 类型的元数据
Cannot get metadata from database for custom post types
已经尝试使用 save_post
和 updated_post
操作。
代码如下:
function la_add_custom_metabox() {
add_meta_box(
'la_meta',
__( 'Dados de Cadastro' ),
'la_meta_callback',
'cota',
'normal',
'core'
);
}
add_action( 'add_meta_boxes', 'la_add_custom_metabox' );
我的自定义字段:
function la_meta_callback(){
wp_nonce_field( basename( __FILE__ ), 'la_cotas_nonce' );
$la_stored_meta = get_post_meta( $post->ID ); ?>
<div>
<div class="meta-row">
<div class="meta-th">
<label for="credito" class="dwwp-row-title"><?php _e( 'Crédito', 'la-cotas' ); ?></label>
</div>
<div class="meta-td">
<input type="text" class="dwwp-row-content" name="credito" id="credito" value="<?php if ( ! empty ( $la_stored_meta['credito'] ) ) { echo esc_attr( $la_stored_meta['credito'][0] ); } ?>"/>
</div>
</div>
</div>
数据库保存函数
function la_meta_save( $post_id ) {
// Checks save status
$is_autosave = wp_is_post_autosave( $post_id );
$is_revision = wp_is_post_revision( $post_id );
$is_valid_nonce = ( isset( $_POST[ 'la_cotas_nonce' ] ) && wp_verify_nonce( $_POST[ 'la_cotas_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false';
// Exits script depending on save status
if ( $is_autosave || $is_revision || !$is_valid_nonce ) {
return;
}
if ( isset( $_POST[ 'credito' ] ) ) {
update_post_meta( $post_id, 'credito', sanitize_text_field( $_POST[ 'credito' ] ) );
}
}
add_action( 'save_post', 'la_meta_save' );
我在互联网上尝试了很多教程,但我找不到我做错了什么。
预期:要插入数据库并显示在自定义编辑页面字段中的数据。
编辑 1: 我发现数据正在保存,但它没有显示在编辑字段中。
已解决:对于那些感兴趣的人:我没有在 save_meta 回调
上传递 $post
//This solved the problem
function la_meta_callback($post){ ... }
已经尝试使用 save_post
和 updated_post
操作。
代码如下:
function la_add_custom_metabox() {
add_meta_box(
'la_meta',
__( 'Dados de Cadastro' ),
'la_meta_callback',
'cota',
'normal',
'core'
);
}
add_action( 'add_meta_boxes', 'la_add_custom_metabox' );
我的自定义字段:
function la_meta_callback(){
wp_nonce_field( basename( __FILE__ ), 'la_cotas_nonce' );
$la_stored_meta = get_post_meta( $post->ID ); ?>
<div>
<div class="meta-row">
<div class="meta-th">
<label for="credito" class="dwwp-row-title"><?php _e( 'Crédito', 'la-cotas' ); ?></label>
</div>
<div class="meta-td">
<input type="text" class="dwwp-row-content" name="credito" id="credito" value="<?php if ( ! empty ( $la_stored_meta['credito'] ) ) { echo esc_attr( $la_stored_meta['credito'][0] ); } ?>"/>
</div>
</div>
</div>
数据库保存函数
function la_meta_save( $post_id ) {
// Checks save status
$is_autosave = wp_is_post_autosave( $post_id );
$is_revision = wp_is_post_revision( $post_id );
$is_valid_nonce = ( isset( $_POST[ 'la_cotas_nonce' ] ) && wp_verify_nonce( $_POST[ 'la_cotas_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false';
// Exits script depending on save status
if ( $is_autosave || $is_revision || !$is_valid_nonce ) {
return;
}
if ( isset( $_POST[ 'credito' ] ) ) {
update_post_meta( $post_id, 'credito', sanitize_text_field( $_POST[ 'credito' ] ) );
}
}
add_action( 'save_post', 'la_meta_save' );
我在互联网上尝试了很多教程,但我找不到我做错了什么。
预期:要插入数据库并显示在自定义编辑页面字段中的数据。
编辑 1: 我发现数据正在保存,但它没有显示在编辑字段中。
已解决:对于那些感兴趣的人:我没有在 save_meta 回调
上传递 $post//This solved the problem
function la_meta_callback($post){ ... }