Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- *
- */
- class Custom_Meta_Boxes{
- public function __construct(){
- add_action( 'add_meta_boxes', array( $this, 'iam_add_meta_box' ) );
- add_action( 'save_post', array( $this, 'iam_save_meta_box_data' ) );
- }
- /**
- * Adds a meta box to the post editing screen
- */
- public function iam_add_meta_box(){
- add_meta_box(
- 'custom_meta_box',
- __( 'Meta Box Title', 'iamtheme' ),
- array( $this, 'iam_display_custom_meta_box' ),
- 'post',
- 'normal',
- 'high'
- );
- }
- /**
- * Render Meta Box content.
- */
- public function iam_display_custom_meta_box() {
- $html = '';
- // Add an nonce field so we can check for it later.
- wp_nonce_field( 'iam_nonce_check', 'iam_nonce_check_value' );
- $html = '<label for="link-text" class="prfx-row-title">Link: </label>';
- $html .= '<input type="text" name="link-text" id="link-text" value="' . get_post_meta( get_the_ID(), 'link-text', true ) . '" placeholder="Enter your link here." />';
- echo $html;
- }
- /**
- * Save the meta when the post is saved.
- */
- public function iam_save_meta_box_data( $post_id ){
- var_dump( $post_id );
- if ( $this->iam_user_can_save( $post_id, 'iam_nonce_check_value' ) ){
- // Checks for input and sanitizes/saves if needed
- if( isset( $_POST[ 'link-text' ] ) && 0 < count( strlen( trim( $_POST['link-text'] ) ) ) ) {
- update_post_meta( $post_id, 'link-text', sanitize_text_field( $_POST[ 'link-text' ] ) );
- }
- }
- }
- /**
- * Determines whether or not the current user has the ability to save meta
- * data associated with this post.
- *
- * @param int $post_id The ID of the post being save
- * @param bool Whether or not the user has the ability to save this post.
- */
- public function iam_user_can_save( $post_id, $nonce ){
- var_dump( $post_id );
- // Checks save status
- $is_autosave = wp_is_post_autosave( $post_id );
- $is_revision = wp_is_post_revision( $post_id );
- $is_valid_nonce = ( isset( $_POST[ $nonce ] ) && wp_verify_nonce( $_POST[ $nonce ], 'iam_nonce_check' ) ) ? 'true' : 'false';
- // Return true if the user is able to save; otherwise, false.
- if ( $is_autosave || $is_revision || !$is_valid_nonce ) {
- return;
- }
- }
- }
- // Instantiate theme
- if ( class_exists( 'Custom_Meta_Boxes' ) ){
- $i_am = new Custom_Meta_Boxes();
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement