درود
با استفاده از این قطعه کد و قرار دادن آن در بخش function.php میتوان دید که چگونه استفاده از متد post_meta دادههای اضافی را از طریق این متد به دیتابیس منتقل میکند. در این مثال یک متاباکس که پیشتر در دروس قبل به ان اشاره شده بود از طریق این متد طراحی شده و با قرار دادن url ویدیو به نمایش در میآید:
// Add the metabox to the post editor screen
function add_video_metabox() {
add_meta_box(
'video_metabox',
'Video Metabox',
'render_video_metabox',
'post',
'normal',
'high'
);
}
add_action('add_meta_boxes', 'add_video_metabox');
// Render the content of the metabox
function render_video_metabox($post) {
// Retrieve the current value of the video URL
$video_url = get_post_meta($post->ID, '_video_url', true);
// Output the HTML for the metabox
?>
<label for="video_url">Video URL:</label>
<input type="text" id="video_url" name="video_url" value="<?php echo esc_attr($video_url); ?>" style="width: 100%;" />
<?php
// Add a nonce field
wp_nonce_field('save_video_metabox', 'video_metabox_nonce');
}
// Save the metabox data
function save_video_metabox($post_id) {
// Check if nonce is set
if (!isset($_POST['video_metabox_nonce'])) {
return $post_id;
}
// Verify that the nonce is valid
if (!wp_verify_nonce($_POST['video_metabox_nonce'], 'save_video_metabox')) {
return $post_id;
}
// Check if this is an autosave
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $post_id;
}
// Check the user's permissions
if ('post' === $_POST['post_type'] && !current_user_can('edit_post', $post_id)) {
return $post_id;
}
// Update the meta field in the database
if (isset($_POST['video_url'])) {
update_post_meta($post_id, '_video_url', sanitize_text_field($_POST['video_url']));
}
}
add_action('save_post', 'save_video_metabox');