metabox.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?php
  2. /////////////// Media URL (Custom Field - media) /////////////////
  3. add_action('init', 'dw_guten_register_media_meta');
  4. function dw_guten_register_media_meta() {
  5. register_meta('post', 'media', array(
  6. 'show_in_rest' => true,
  7. 'type' => 'string',
  8. 'single' => true,
  9. 'sanitize_callback' => 'sanitize_text_field',
  10. 'auth_callback' => function() {
  11. return current_user_can('edit_posts');
  12. }
  13. ));
  14. }
  15. add_action( 'add_meta_boxes', 'dw_guten_add_media_meta_box' );
  16. function dw_guten_add_media_meta_box() {
  17. add_meta_box(
  18. 'dw_guten_post_options_metabox',
  19. 'Post Options',
  20. 'dw_guten_post_options_metabox_html',
  21. 'post',
  22. 'normal',
  23. 'default',
  24. array('__back_compat_meta_box' => true)
  25. );
  26. }
  27. add_action( 'save_post', 'dw_guten_save_post_metabox', 10, 2 );
  28. function dw_guten_post_options_metabox_html($post) {
  29. $field_value = get_post_meta($post->ID, 'media', true);
  30. wp_nonce_field( 'dw_guten_update_post_metabox', 'dw_guten_update_post_nonce' );
  31. ?>
  32. <p>
  33. <label for="dw_guten_media_metafield"><?php esc_html_e( 'Media URL', 'textdomain' ); ?></label>
  34. <br />
  35. <input class="widefat" type="text" name="dw_guten_media_metafield" id="dw_guten_media_metafield" value="<?php echo esc_attr( $field_value ); ?>" />
  36. </p>
  37. <?php
  38. }
  39. function dw_guten_save_post_metabox($post_id, $post) {
  40. $edit_cap = get_post_type_object( $post->post_type )->cap->edit_post;
  41. if( !current_user_can( $edit_cap, $post_id )) {
  42. return;
  43. }
  44. if( !isset( $_POST['dw_guten_update_post_nonce']) || !wp_verify_nonce( $_POST['dw_guten_update_post_nonce'], 'dw_guten_update_post_metabox' )) {
  45. return;
  46. }
  47. if(array_key_exists('dw_guten_media_metafield', $_POST)) {
  48. update_post_meta(
  49. $post_id,
  50. 'media',
  51. sanitize_text_field($_POST['dw_guten_media_metafield'])
  52. );
  53. }
  54. }
  55. ///////// Feature Img URL (Custom Field - featured_image_url) ////////////
  56. function dw_guten_register_featured_image_url_meta() {
  57. register_meta('post', 'featured_image_url', array(
  58. 'show_in_rest' => true,
  59. 'type' => 'string',
  60. 'single' => true,
  61. 'sanitize_callback' => 'sanitize_text_field',
  62. 'auth_callback' => function() {
  63. return current_user_can('edit_posts');
  64. }
  65. ));
  66. }
  67. add_action('init', 'dw_guten_register_featured_image_url_meta');
  68. function dw_guten_add_featured_image_url_meta_box() {
  69. add_meta_box(
  70. 'dw_guten_post_options_metabox',
  71. 'Post Options',
  72. 'dw_guten_post_options_metabox_featured_image_url',
  73. 'post',
  74. 'normal',
  75. 'default',
  76. array('__back_compat_meta_box' => true)
  77. );
  78. }
  79. add_action( 'add_meta_boxes', 'dw_guten_add_featured_image_url_meta_box' );
  80. function dw_guten_post_options_metabox_featured_image_url($post) {
  81. $field_value = get_post_meta($post->ID, 'featured_image_url', true);
  82. wp_nonce_field( 'dw_guten_update_post_metabox_featured_image_url', 'dw_guten_update_post_nonce' );
  83. ?>
  84. <p>
  85. <label for="dw_guten_featured_image_url_metafield"><?php esc_html_e( 'Featured Image URL', 'textdomain' ); ?></label>
  86. <br />
  87. <input class="widefat" type="text" name="dw_guten_featured_image_url_metafield" id="dw_guten_featured_image_url_metafield" value="<?php echo esc_attr( $field_value ); ?>" />
  88. </p>
  89. <?php
  90. }
  91. function dw_guten_save_post_metabox_featured_image_url($post_id, $post) {
  92. $edit_cap = get_post_type_object( $post->post_type )->cap->edit_post;
  93. if( !current_user_can( $edit_cap, $post_id )) {
  94. return;
  95. }
  96. if( !isset( $_POST['dw_guten_update_post_nonce_featured_image_url']) || !wp_verify_nonce( $_POST['dw_guten_update_post_nonce_featured_image_url'], 'dw_guten_update_post_metabox_featured_image_url' )) {
  97. return;
  98. }
  99. if(array_key_exists('dw_guten_media_metafield', $_POST)) {
  100. update_post_meta(
  101. $post_id,
  102. 'featured_image_url',
  103. sanitize_text_field($_POST['dw_guten_featured_image_url_metafield'])
  104. );
  105. }
  106. }
  107. add_action( 'save_post', 'dw_guten_save_post_metabox_featured_image_url', 10, 2 );
  108. /////////////// Meta Description (Custom Field - meta_desc) /////////////////
  109. function dw_guten_register_desc_meta() {
  110. register_meta('post', 'meta_desc', array(
  111. 'show_in_rest' => true,
  112. 'type' => 'string',
  113. 'single' => true,
  114. 'sanitize_callback' => 'sanitize_text_field',
  115. 'auth_callback' => function() {
  116. return current_user_can('edit_posts');
  117. }
  118. ));
  119. }
  120. add_action('init', 'dw_guten_register_desc_meta');
  121. function dw_guten_add_desc_meta_box() {
  122. add_meta_box(
  123. 'dw_guten_post_options_metabox',
  124. 'Post Options',
  125. 'dw_guten_post_options_metabox_desc',
  126. 'post',
  127. 'normal',
  128. 'default',
  129. array('__back_compat_meta_box' => true)
  130. );
  131. }
  132. add_action( 'add_meta_boxes', 'dw_guten_add_desc_meta_box' );
  133. function dw_guten_post_options_metabox_desc($post) {
  134. $field_value = get_post_meta($post->ID, 'media', true);
  135. wp_nonce_field( 'dw_guten_update_post_metabox_desc', 'dw_guten_update_post_nonce' );
  136. ?>
  137. <p>
  138. <label for="dw_guten_desc_metafield"><?php esc_html_e( 'Meta Excerpt', 'textdomain' ); ?></label>
  139. <br />
  140. <input class="widefat" type="text" name="dw_guten_desc_metafield" id="dw_guten_desc_metafield" value="<?php echo esc_attr( $field_value ); ?>" />
  141. </p>
  142. <?php
  143. }
  144. function dw_guten_save_post_metabox_desc($post_id, $post) {
  145. $edit_cap = get_post_type_object( $post->post_type )->cap->edit_post;
  146. if( !current_user_can( $edit_cap, $post_id )) {
  147. return;
  148. }
  149. if( !isset( $_POST['dw_guten_update_post_nonce_desc']) || !wp_verify_nonce( $_POST['dw_guten_update_post_nonce_desc'], 'dw_guten_update_post_metabox_desc' )) {
  150. return;
  151. }
  152. if(array_key_exists('dw_guten_desc_metafield', $_POST)) {
  153. update_post_meta(
  154. $post_id,
  155. 'meta_desc',
  156. sanitize_text_field($_POST['dw_guten_desc_metafield'])
  157. );
  158. }
  159. }
  160. add_action( 'save_post', 'dw_guten_save_post_metabox_desc', 10, 2 );