Php Wordpress自定义元框返回空?

Php Wordpress自定义元框返回空?,php,wordpress,custom-post-type,meta-boxes,Php,Wordpress,Custom Post Type,Meta Boxes,我为自定义帖子类型(书籍)创建了一个自定义元框(作者)。该框显示在“管理罚款”中,但我不知道如何在我的主题中显示作者 这是用于创建框的代码: /** * Adds a meta box to the post editing screen */ function prfx_custom_meta() { add_meta_box( 'prfx_meta', __( 'Book Author', 'prfx-textdomain' ), 'prfx_meta_callback', 'r

我为自定义帖子类型(书籍)创建了一个自定义元框(作者)。该框显示在“管理罚款”中,但我不知道如何在我的主题中显示作者

这是用于创建框的代码:
/**
 * Adds a meta box to the post editing screen
 */
function prfx_custom_meta() {
    add_meta_box( 'prfx_meta', __( 'Book Author', 'prfx-textdomain' ), 'prfx_meta_callback', 'rabe_books', 'side' );
}
add_action( 'add_meta_boxes', 'prfx_custom_meta' );

/**
 * Outputs the content of the meta box
 */
function prfx_meta_callback( $post ) {
    wp_nonce_field( basename( __FILE__ ), 'prfx_nonce' );
    $prfx_stored_meta = get_post_meta( $post->ID );
    ?>

    <p>
        <label for="meta-text" class="prfx-row-title"><?php _e( 'Example Text Input', 'prfx-textdomain' )?></label>
    </p>

    <?php
}



/**
 * Saves the custom meta input
 */
function prfx_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[ 'prfx_nonce' ] ) && wp_verify_nonce( $_POST[ 'prfx_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false';

    // Exits script depending on save status
    if ( $is_autosave || $is_revision || !$is_valid_nonce ) {
        return;
    }

    // Checks for input and sanitizes/saves if needed
    if( isset( $_POST[ 'meta-text' ] ) ) {
        update_post_meta( $post_id, 'meta-text', sanitize_text_field( $_POST[ 'meta-text' ] ) );
    }

}
add_action( 'save_post', 'prfx_meta_save' );


/**
 * Adds the meta box stylesheet when appropriate
 */
function prfx_admin_styles(){
    global $typenow;
    if( $typenow == 'post' ) {
        wp_enqueue_style( 'prfx_meta_box_styles', plugin_dir_url( __FILE__ ) . 'meta-box-styles.css' );
    }
}
add_action( 'admin_print_styles', 'prfx_admin_styles' ); ?>
/**
*将元框添加到后期编辑屏幕
*/
函数prfx_custom_meta(){
添加元框('prfx_meta','Book Author','prfx textdomain'),'prfx_meta_callback','rabe_books','side');
}
添加动作('add_meta_box'、'prfx_custom_meta');
/**
*输出元框的内容
*/
函数prfx_meta_回调($post){
wp_nonce_字段(basename(_FILE__;),'prfx_nonce');
$prfx\u stored\u meta=get\u post\u meta($post->ID);
?>

这是我在模板中放置的内容:

<div class="book-author">by:
    <?php $book_author = get_post_meta( get_the_ID(), 'meta-text', true );
    if (!empty($book_author))  {
        echo $book_author;
    } elseif (empty($book_author)) {
        echo "Why doesnt it work?";
    } ?>
</div>
作者:

它不显示作者,而是显示文本“为什么它不工作?”我想这意味着该值是空的。但它不应该是空的。我做错了什么?

正如mevius提到的,您的问题是:

<?php _e( 'Example Text Input', 'prfx-textdomain' )?>

您需要将该框指定给数据点

这是我们的functions.php文件中的一个片段,其中包含以下内容:

function css_metadata_box($object, $box) { ?>
<p>
    <label for="custom-css-data">Add custom CSS for this page</label>
    <textarea name="custom-css-data" id="custom-css-data" cols="60" rows="25" tabindex="30" style="width: 97%;"><?php
        echo esc_html( get_post_meta( $object->ID, 'custom-css', true ), 1 );
    ?></textarea>
    <input type="hidden" name="css_meta_box_nonce" value="<?php echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" />
</p>
<?php }

add_meta_box('css-data-box', 'Page CSS', 'css_metadata_box', 'page', 'normal', 'high');
函数css\u元数据\u框($object,$box){?>

添加此页面的自定义CSS

你甚至没有上面的输入框…这是如何工作的?试着使用wordpress高级自定义字段:哎呀,我不知道输入是如何被删除的。我想我要试试这个插件。谢谢@Masoud的提示。