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的提示。