【问题标题】:cant display custom meta box data无法显示自定义元框数据
【发布时间】:2015-07-27 09:56:19
【问题描述】:

我正在创建一个自定义元框:

<?php
/**
* Plugin Name: Relaterade sidor
* Description: lägg till relaterade sidor
* Version: 1.0
* Author: test
* Author URI: test
*
*/


function relaterade_sidor_get_meta( $value ) {
global $post;

$field = get_post_meta( $post->ID, $value, true );
if ( ! empty( $field ) ) {
    return is_array( $field ) ? stripslashes_deep( $field ) : stripslashes( wp_kses_decode_entities( $field ) );
} else {
    return false;
}
}

function relaterade_sidor_add_meta_box() {
add_meta_box(
    'relaterade_sidor-relaterade-sidor',
    __( 'relaterade sidor', 'relaterade_sidor' ),
    'relaterade_sidor_relaterade_sidor_html',
    'post',
    'normal',
    'default'
);
add_meta_box(
    'relaterade_sidor-relaterade-sidor',
    __( 'relaterade sidor', 'relaterade_sidor' ),
    'relaterade_sidor_relaterade_sidor_html',
    'page',
    'normal',
    'default'
);
}
add_action( 'add_meta_boxes', 'relaterade_sidor_add_meta_box' );

function relaterade_sidor_relaterade_sidor_html( $post) {
wp_nonce_field( '_relaterade_sidor_relaterade_sidor_nonce', 'relaterade_sidor_relaterade_sidor_nonce' ); ?>

<p>relaterade sidor</p>

<p>
    <label for="relaterade_sidor_relaterade_sidor_url"><?php _e( 'Url', 'relaterade_sidor' ); ?></label><br>
    <input type="text" name="relaterade_sidor_relaterade_sidor_url" id="relaterade_sidor_relaterade_sidor_url" value="<?php echo relaterade_sidor_get_meta( 'relaterade_sidor_relaterade_sidor_url' ); ?>">
</p><?php
}

function relaterade_sidor_relaterade_sidor_save( $post_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( ! isset( $_POST['relaterade_sidor_relaterade_sidor_nonce'] ) || ! wp_verify_nonce( $_POST['relaterade_sidor_relaterade_sidor_nonce'], '_relaterade_sidor_relaterade_sidor_nonce' ) ) return;
if ( ! current_user_can( 'edit_post' ) ) return;

if ( isset( $_POST['relaterade_sidor_relaterade_sidor_url'] ) )
    update_post_meta( $post_id, 'relaterade_sidor_relaterade_sidor_url', esc_attr( $_POST['relaterade_sidor_relaterade_sidor_url'] ) );
}
add_action( 'save_post', 'relaterade_sidor_relaterade_sidor_save' );

/*
Usage: relaterade_sidor_get_meta( 'relaterade_sidor_relaterade_sidor_url' )
*/

?>

保存/更新后文本保留在文本字段中,所以我猜这意味着它已保存到数据库中,但是当尝试在页面中显示数据或发布时,我只会得到空白。

这两个我都试过了:

<?php if (have_posts()) : while (have_posts()) : the_post();

 $intro = get_post_meta(get_the_ID(), 'relaterade_sidor-relaterade-sidor', true);
echo "content: " . $intro;
?>
<?php
global $wp_query;
$postid = $wp_query->post->ID;
echo get_post_meta($postid, 'relaterade_sidor-relaterade-sidor', true);
wp_reset_query();
?>

但我只有空白,无法显示保存在自定义元文本框中的内容。

【问题讨论】:

  • 我查了数据库,确认数据正在保存中,问题应该是在显示数据但找不到位置。

标签: php wordpress meta-boxes


【解决方案1】:

抱歉,在我应该连接密钥时尝试将其连接到元框名称,

$intro = get_post_meta(get_the_ID(), 'relaterade_sidor_relaterade_sidor_url',    true);
echo "content: " . $intro;

在循环内工作得很好

【讨论】:

    【解决方案2】:

    我建议 CMB2 库。元框不再令人头疼;)

    https://stackoverflow.com/a/31662024/5162081

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 1970-01-01
      相关资源
      最近更新 更多