Guest User

Untitled

a guest
Oct 17th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. class dd_slider_meta {
  2.  
  3. public function __construct() {
  4.  
  5. if ( is_admin() ) {
  6. add_action( 'load-post.php', array( $this, 'init_metabox' ) );
  7. add_action( 'load-post-new.php', array( $this, 'init_metabox' ) );
  8. }
  9.  
  10. }
  11.  
  12. public function init_metabox() {
  13.  
  14. add_action( 'add_meta_boxes', array( $this, 'add_metabox' ) );
  15. add_action( 'save_post', array( $this, 'save_metabox' ), 10, 2 );
  16.  
  17. }
  18.  
  19. public function add_metabox() {
  20.  
  21. add_meta_box(
  22. 'slider',
  23. __( 'Slider Options', 'text_domain' ),
  24. array( $this, 'render_metabox' ),
  25. 'post',
  26. 'normal',
  27. 'default'
  28. );
  29.  
  30. }
  31.  
  32. public function render_metabox( $post ) {
  33.  
  34. // Retrieve an existing value from the database.
  35. $slider_caption = get_post_meta( $post->ID, 'slider_caption', true );
  36. $slider_link = get_post_meta( $post->ID, 'slider_link', true );
  37.  
  38. // Set default values.
  39. if( empty( $slider_caption ) ) $slider_caption = '';
  40. if( empty( $slider_link ) ) $slider_link = '';
  41.  
  42. // Form fields.
  43. echo '<table class="form-table">';
  44.  
  45. echo ' <tr>';
  46. echo ' <th><label for="slider_caption" class="slider_caption_label">' . __( 'Caption', 'text_domain' ) . '</label></th>';
  47. echo ' <td>';
  48. wp_editor( $slider_caption, 'slider_caption', array( 'media_buttons' => true ) );
  49. echo ' <p class="description">' . __( 'Input your caption for slide (HTML tags are allowed).', 'text_domain' ) . '</p>';
  50. echo ' </td>';
  51. echo ' </tr>';
  52.  
  53. echo ' <tr>';
  54. echo ' <th><label for="slider_link" class="slider_link_label">' . __( 'URL', 'text_domain' ) . '</label></th>';
  55. echo ' <td>';
  56. echo ' <input type="text" id="slider_link" name="slider_link" class="slider_link_field" placeholder="' . esc_attr__( '', 'text_domain' ) . '" value="' . esc_attr( $slider_link ) . '">';
  57. echo ' <p class="description">' . __( 'Input the slide URL (can be external link)', 'text_domain' ) . '</p>';
  58. echo ' </td>';
  59. echo ' </tr>';
  60.  
  61. echo '</table>';
  62.  
  63. }
  64.  
  65. public function save_metabox( $post_id, $post ) {
  66.  
  67. // Sanitize user input.
  68. $slider_new_caption = isset( $_POST[ 'slider_caption' ] ) ? wp_kses_post( $_POST[ 'slider_caption' ] ) : '';
  69. $slider_new_link = isset( $_POST[ 'slider_link' ] ) ? sanitize_text_field( $_POST[ 'slider_link' ] ) : '';
  70.  
  71. // Update the meta field in the database.
  72. update_post_meta( $post_id, 'slider_caption', $slider_new_caption );
  73. update_post_meta( $post_id, 'slider_link', $slider_new_link );
  74.  
  75. }
  76.  
  77. }
  78.  
  79. new dd_slider_meta;
Add Comment
Please, Sign In to add comment