खोज…


परिचय

Wp-व्यवस्थापन सामग्री संपादकों में मेटा बॉक्स का सरल उपयोग

वाक्य - विन्यास

  • _x ('टेक्स्ट', 'विवरण', 'टेक्सडेटोमेन') का उपयोग __ ('टेक्स्ट', 'टेक्सटोमैन') के बजाय अनुवाद सेवा के लिए विवरण जोड़ने के लिए किया जाता है, जो कि सिर्फ अनुवाद है
  • _ex ('टेक्स्ट', 'विवरण', 'टेक्सटोमैन') का उपयोग विवरण के साथ अनुवादित पाठ को प्रतिध्वनित करने के लिए किया जाता है

टिप्पणियों

रेंडर मेटा बॉक्स के अंदर की सामग्री कुछ भी हो सकती है। मानों को सीधे एकीकृत किए जाने के बजाय, आप किसी PHP टेम्पलेट के साथ include उपयोग कर सकते हैं और डेटा पास करने के लिए set_query_var विधि का उपयोग कर सकते हैं। बचत उसी तरह काम करेगी।

एक नियमित इनपुट और एक चयनित इनपुट के साथ एक सरल उदाहरण

/**
* Add meta box to post types.
*
* @since  1.0.0
*/
function myplugin_add_meta_box() {
    // Set up the default post types/
    $types = array(
        'post',
    );

    // Optional filter for adding the meta box to more types. Uncomment to use.
    // $types = apply_filters( 'myplugin_meta_box_types', $types );

    // Add the meta box to the page
    add_meta_box(
        'myplugin-meta-box', // Meta Box Id. Can be anything.
        _x( 'Custom Meta', 'Custom Meta Box', 'myplugin' ), // The title of the meta box. Translation is optional. Can just be string.
        'myplugin_render_meta_box', // The render meta box function.
        $types, // Add the post types to which to add the meta box.
        'side', // Show on the side of edit.
        'high' // Show at top of edit.
    );
}

add_action( 'add_meta_boxes', 'myplugin_add_meta_box' );

/**
* Render the meta box.
*
* This shows examples of a basic input and a select inside a meta box. These can be anything.
*
* @since  1.0.0
*
* @param $post WP_Post The post being edited.
*/
function myplugin_render_meta_box( $post ) {
    // Get the current post meta values for our custom meta box.
    $city  = get_post_meta( $post->ID, 'city', true ); // True is for returning a single value.
    $country = get_post_meta( $post->ID, 'country', true ); // True is for returning a single value.

    // Add the WP Nonce field for security.
    wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_meta_nonce' );
?>

<p>
    <label for="city">
        <?php _ex( 'City', 'Custom Meta Box Template', 'myplugin' ); ?>
    </label>
    <input name="city" id="city" value="<?php echo $city; ?>" />
</p>
<p>
    <label for="country">
        <?php _ex( 'Country', 'Custom Meta Box Template', 'myplugin' ); ?>
    </label>
    <select name="country" id="country">
        <option value="United States" <?php selected( $country, 'United States' ); ?>><?php _ex( 'United States', 'Custom Meta Box Template', 'myplugin' ); ?></option>
        <option value="Mexico" <?php selected( $country, 'Mexico' ); ?>><?php _ex( 'Mexico', 'Custom Meta Box Template', 'myplugin' ); ?></option>
        <option value="Canada" <?php selected( $country, 'Canada' ); ?>><?php _ex( 'Canada', 'Custom Meta Box Template', 'myplugin' ); ?></option>
    </select>
</p>

<?php
}

/**
* Save meta box data.
*
* @since  1.0.0
*
* @param $post_id int The Id of the Post being saved.
*/
function myplugin_save_meta_data( $post_id ) {
    // Verify this is not an auto save.
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }

    // Validate the meta box nonce for security.
    if ( ! isset( $_POST['myplugin_meta_nonce'] ) || ! wp_verify_nonce( $_POST['myplugin_meta_nonce'], plugin_basename( __FILE__ ) ) ) {
        return;
    }

    // Get the new values from the form.
    $city    = $_POST['city'];
    $country = $_POST['country'];

    // update_post_meta will add the value if it doesn't exist or update it if it does.
    update_post_meta( $post_id, 'city', $city );
    update_post_meta( $post_id, 'country', $country );

    /*
    * OPTIONAL ALTERNATIVE
    *
    * Instead of just using update_post_meta, you could also check the values and 
    * issue create/update/delete on the post meta value.
    */
    // $current_city_value = get_post_meta( $post_id, 'city', true ); // True is for returning a single value.
    //
    // // Add the post meta if it doesn't exist.
    // if ( $city && '' === $city ) {
    //     add_post_meta( $post_id, 'city', $city, true ); // True means the key is unique to the post. False is default and more than one can be added.
    // }
    // // Edit the post meta if it does exist and there is a new value. 
    // elseif ( $city && $city != $current_city_value ) {
    //     update_post_meta( $post_id, 'city', $city );
    // } 
    // // Delete the post meta if there is no new value. 
    // elseif ( '' === $city && $current_city_value ) {
    //     delete_post_meta( $post_id, 'city', $current_city_value ); // $current_city_value is optional and is used to differentiate between other values with the same key.
    // }
}

add_action( 'save_post', 'myplugin_save_meta_data' );


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow