Make WordPress Core

Ticket #53644: test-wpeditor-metabox.php

File test-wpeditor-metabox.php, 1.4 KB (added by dway, 3 years ago)
Line 
1<?php
2/**
3 * Add and render Metabox for post
4 */
5
6add_action( 'add_meta_boxes', 'wpdev_add_post_metabox' );
7
8function wpdev_add_post_metabox() {
9        // Add new meta box.
10        add_meta_box(
11                'wpdev_post_metabox',
12                'Test WPeditor',
13                'wpdev_render_post_metabox',
14                'post',
15                'normal'
16        );
17}
18
19function wpdev_render_post_metabox() {
20        global $post;
21
22        // Get saved meta data.
23        $post_note_meta_content = get_post_meta( $post->ID, 'wpdev_post_field_tinymce', true );
24
25        // Nonce field.
26        wp_nonce_field( 'wpdev_post_metabox_nonce_' . $post->ID, 'wpdev_post_metabox_nonce' );
27
28        // Render editor metabox.
29        wp_editor(
30                $post_note_meta_content,
31                'wpdev_post_field_tinymce',
32                array( 'textarea_rows' => '5' )
33        );
34}
35
36/**
37 * Save post metabox
38 */
39
40add_action( 'save_post', 'wpdev_save_post' );
41
42function wpdev_save_post( $post_id ) {
43
44        // Bail if auto save.
45        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
46                return;
47        }
48
49        // Bail if nonce is missing or nonce verification fails.
50        if ( ! isset( $_POST['wpdev_post_metabox_nonce'] ) || ! wp_verify_nonce( $_POST['wpdev_post_metabox_nonce'], 'wpdev_post_metabox_nonce_' . $post_id ) ) {
51                return;
52        }
53
54        // Bail is current user is allowed to edit posts.
55        if ( ! current_user_can( 'edit_post' ) ) {
56                return;
57        }
58
59        // Make sure our data is set before trying to save it.
60        if ( isset( $_POST['wpdev_post_field_tinymce'] ) ) {
61                update_post_meta( $post_id, 'wpdev_post_field_tinymce', $_POST['wpdev_post_field_tinymce'] );
62        }
63}