无法显示自定义元框数据

时间:2015-07-27 09:56:19

标签: php wordpress meta-boxes

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

            <form id="Form" action="" method="POST">
                <input id="id" name="id" type="text" class="form-control typeahead" style="text-align:center;" placeholder="">
                <input type="submit" name="search" value="Search" class="btn btn-lg btn-primary homeSearchBtn" style="margin-top:-70px;"/><br/>     
            </form>

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

我试过这两个:

<?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' )
*/

?>

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

2 个答案:

答案 0 :(得分:0)

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

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

在循环内工作正常

答案 1 :(得分:0)

我建议使用CMB2库。没有更多关于metaboxes的麻烦;)

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