The Ultimate Guide to Creating Custom Meta Boxes WordPress

Ultimate Guide to Custom Meta Boxes in WordPress

In WordPress, the add_meta_boxes action hook allows developers to add custom meta boxes to the post and page editor screens. Meta boxes are additional sections on the post editor screen where you can display and manage custom fields, custom data, or other elements related to your posts.

How to Add Custom Meta Boxes in WordPress

To add a custom meta box to a post type (like “post” or “page”), follow the code example below:

// Add the custom meta box
function my_custom_meta_box() {
    add_meta_box(
        'my_custom_meta_box_id',     // Unique ID of the meta box
        'My Custom Meta Box',        // Title of the meta box
        'display_custom_meta_box',   // Callback function to display the content of the meta box
        'post',                      // Post type where the meta box should be displayed
        'normal',                    // Context (normal, advanced, or side)
        'high'                       // Priority (high, default, low, or core)
    );
}
add_action( 'add_meta_boxes', 'my_custom_meta_box' );

// Display the content of the custom meta box
function display_custom_meta_box( $post ) {
    // Retrieve any existing values for the custom fields
    $custom_field_value = get_post_meta( $post->ID, '_custom_field_key', true );

    // Nonce field to verify the data when submitting
    wp_nonce_field( 'my_custom_meta_box_nonce_action', 'my_custom_meta_box_nonce' );

    // Output the HTML for your custom meta box content
    ?>
    <label for="custom_field">Custom Field:</label>
    <input type="text" id="custom_field" name="custom_field" value="<?php echo esc_attr( $custom_field_value ); ?>" style="width: 100%;">
    <?php
}

// Save the custom meta box data when the post is saved or updated
function save_custom_meta_box_data( $post_id ) {
    // Verify the nonce
    if ( ! isset( $_POST['my_custom_meta_box_nonce'] ) || ! wp_verify_nonce( $_POST['my_custom_meta_box_nonce'], 'my_custom_meta_box_nonce_action' ) ) {
        return;
    }

    // Check if this is an autosave
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }

    // Check the user's permissions
    if ( ! current_user_can( 'edit_post', $post_id ) ) {
        return;
    }

    // Save the custom field value
    if ( isset( $_POST['custom_field'] ) ) {
        update_post_meta( $post_id, '_custom_field_key', sanitize_text_field( $_POST['custom_field'] ) );
    }
}
add_action( 'save_post', 'save_custom_meta_box_data' );

This code will add a custom meta box to the post editor screen in the WordPress admin for the “post” post type. The meta box contains a single text input field where you can enter and save custom data.

Important Notes

  • Make sure to replace 'my_custom_meta_box_id' and 'my_custom_meta_box_nonce_action' with unique IDs to avoid conflicts with other plugins or themes.
  • Adjust the post type and customize the HTML inside the display_custom_meta_box function according to your specific needs.

By following these steps, you can easily add and manage custom meta boxes in WordPress for different post types. For more WordPress development resources, visit the official WordPress Developer Resources.

Related Blogs

How to add ACF options pages and options sub page

To add Advanced Custom Fields (ACF) options pages and options sub-pages, you’ll need to have ACF Pro installed and activated on your WordPress site. ACF Pro allows you to create custom options pages where you can add settings, fields, and other configuration data.

Shortcodes included with Dokan

Dokan is a popular multi-vendor marketplace plugin for WooCommerce that allows you to create and manage a marketplace where multiple vendors can sell their products. Dokan provides several shortcodes that you can use to display various elements and functionalities on your marketplace pages. Here are some of the essential shortcodes provided by Dokan:

Request A Quote

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.