Để trả lời câu hỏi đầu tiên của bạn, nhận được post meta
»tác giả sách của bạn « theo cách này sẽ lặp lại / hiển thị như vậy. Nếu bạn đang xác định đúng biến $id
trong mã của mình - hoặc bạn có thể làm điều đó như hiển thị bên dưới.
Mã sẽ trả lời câu hỏi thứ hai của bạn, làm thế nào để chèn dòng tiêu đề thứ hai của bạn vào trang sản phẩm thông qua hook woocommerce_single_product_summary
. Chỉ cần thêm thông tin bổ sung của bạn như thế này:
function wpse116660_wc_add_2nd_title() {
?>
<div class="2nd-tile">
<?php echo get_post_meta(get_the_ID(), "bookauthor", true); ?>
</div>
<?php
}
add_action( 'woocommerce_single_product_summary', 'wpse116660_wc_add_2nd_title', 6 );
Để thoải mái hơn với meta bài đăng tùy chỉnh của bạn, bạn có thể làm những gì @ pl4g4 và @brasofilo đề xuất và thêm một metabox vào màn hình chỉnh sửa sản phẩm, nhưng tất nhiên không cần thiết, bạn dường như biết cách thực hiện với tùy chỉnh wordpress tiêu chuẩn lĩnh vực metabox .
Bạn có thể thêm hộp meta của mình như thế này, mã được dựa trên ví dụ đầu tiên trên trang codex wordpress add_meta_box .
/**
* Adds a box to the main column on the Post and Page edit screens.
*/
function wpse116660_wc_2nd_title_mb() {
$screen = array( 'product' );
add_meta_box(
'wc_2nd_title_mb',
__( '2nd title', 'your_textdomain' ),
'wc_2nd_title_inner_mb',
$screen,
'advanced',
'high'
);
}
add_action( 'add_meta_boxes', 'wpse116660_wc_2nd_title_mb', 0 );
/**
* Prints the box content.
*
* @param WP_Post $post The object for the current post/page.
*/
function wpse116660_wc_2nd_title_inner_mb( $post ) {
// Add an nonce field so we can check for it later.
wp_nonce_field( 'wc_2nd_title_inner_mb', 'wc_2nd_title_inner_mb_nonce' );
/*
* Use get_post_meta() to retrieve an existing value
* from the database and use the value for the form.
*/
$value = get_post_meta( $post->ID, 'bookauthor', true );
echo '<label for="bookauthor_field">';
_e( "Bookauthor", 'your_textdomain' );
echo '</label> ';
echo '<input type="text" id="bookauthor_field" name="bookauthor_field" value="' . esc_attr( $value ) . '" size="50" />';
}
/**
* When the post is saved, saves our custom data.
*
* @param int $post_id The ID of the post being saved.
*/
function wpse116660_wc_2nd_title_save_postdata( $post_id ) {
/*
* We need to verify this came from the our screen and with proper authorization,
* because save_post can be triggered at other times.
*/
// Check if our nonce is set.
if ( ! isset( $_POST['wc_2nd_title_inner_mb_nonce'] ) )
return $post_id;
$nonce = $_POST['wc_2nd_title_inner_mb_nonce'];
// Verify that the nonce is valid.
if ( ! wp_verify_nonce( $nonce, 'wc_2nd_title_inner_mb' ) )
return $post_id;
// If this is an autosave, our form has not been submitted, so we don't want to do anything.
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return $post_id;
// Check the user's permissions.
if ( 'page' == $_POST['post_type'] ) {
if ( ! current_user_can( 'edit_page', $post_id ) )
return $post_id;
} else {
if ( ! current_user_can( 'edit_post', $post_id ) )
return $post_id;
}
/* OK, its safe for us to save the data now. */
// Sanitize user input.
$mydata = sanitize_text_field( $_POST['bookauthor_field'] );
// Update the meta field in the database.
update_post_meta( $post_id, 'bookauthor', $mydata );
}
add_action( 'save_post', 'wpse116660_wc_2nd_title_save_postdata' );
add_action
mức độ ưu tiên là 6, điều gì sẽ đặt phụ đề ngay sau tiêu đề thông thường (có mức độ ưu tiên là 5). Trong trường hợp OP không muốn thêm metabox của riêng mình, tôi đã viết một plugin phụ đề để lưu dữ liệu.