| 1 | <?php
|
|---|
| 2 | add_action( 'add_meta_boxes', 'mcdev_add_meta_to_posts' );
|
|---|
| 3 |
|
|---|
| 4 | function mcdev_add_meta_to_posts() {
|
|---|
| 5 | // Add new meta box.
|
|---|
| 6 | add_meta_box(
|
|---|
| 7 | 'mcdev_post_note_box',
|
|---|
| 8 | 'Test TinyMCE Note',
|
|---|
| 9 | 'mcev_render_meta_posts_content',
|
|---|
| 10 | 'post',
|
|---|
| 11 | 'normal'
|
|---|
| 12 | );
|
|---|
| 13 | }
|
|---|
| 14 |
|
|---|
| 15 | function mcev_render_meta_posts_content() {
|
|---|
| 16 | global $post;
|
|---|
| 17 |
|
|---|
| 18 | // Get saved meta data.
|
|---|
| 19 | $post_note_meta_content = get_post_meta( $post->ID, 'mcdev_post_note', true );
|
|---|
| 20 |
|
|---|
| 21 | // Hidden nonce field.
|
|---|
| 22 | wp_nonce_field( 'mcdev_post_note' . $post->ID, 'mcdev_post_note_nonce' );
|
|---|
| 23 |
|
|---|
| 24 | // Render editor metabox.
|
|---|
| 25 | wp_editor( $post_note_meta_content, 'mcdev_post_note', array( 'textarea_rows' => '5' ) );
|
|---|
| 26 | }
|
|---|
| 27 |
|
|---|
| 28 | add_action( 'save_post', 'post_note_meta_box_save' );
|
|---|
| 29 |
|
|---|
| 30 | function post_note_meta_box_save( $post_id ) {
|
|---|
| 31 | // Bail if auto save.
|
|---|
| 32 | if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
|
|---|
| 33 | return;
|
|---|
| 34 | }
|
|---|
| 35 |
|
|---|
| 36 | // Bail if nonce is missing or nonce verification fails.
|
|---|
| 37 | if ( ! isset( $_POST['mcdev_post_note_nonce'] ) || ! wp_verify_nonce( $_POST['mcdev_post_note_nonce'], 'mcdev_post_note' . $post_id ) ) {
|
|---|
| 38 | return;
|
|---|
| 39 | }
|
|---|
| 40 |
|
|---|
| 41 | // Bail is current user is allowed to edit posts.
|
|---|
| 42 | if ( ! current_user_can( 'edit_post' ) ) {
|
|---|
| 43 | return;
|
|---|
| 44 | }
|
|---|
| 45 |
|
|---|
| 46 | // Make sure our data is set before trying to save it.
|
|---|
| 47 | if ( isset( $_POST['mcdev_post_note'] ) ) {
|
|---|
| 48 | update_post_meta( $post_id, 'mcdev_post_note', $_POST['mcdev_post_note'] );
|
|---|
| 49 | }
|
|---|
| 50 | }
|
|---|