RuslanK

few custum fieds

Feb 10th, 2020
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.31 KB | None | 0 0
  1. <?
  2. ## Добавляем блоки в основную колонку на страницах постов и пост. страниц
  3. add_action('add_meta_boxes', 'myplugin_add_custom_box');
  4. function myplugin_add_custom_box(){
  5.     $screens = array( 'post', 'page' );
  6.     add_meta_box( 'myplugin_sectionid', 'Название мета блока', 'myplugin_meta_box_callback', $screens );
  7. }
  8.  
  9. // HTML код блока
  10. function myplugin_meta_box_callback( $post, $meta ){
  11.     $screens = $meta['args'];
  12.  
  13.     // Используем nonce для верификации
  14.     wp_nonce_field( plugin_basename(__FILE__), 'myplugin_noncename' );
  15.  
  16.     $value = get_post_meta( $post->ID, 'my_meta_key');
  17.     var_dump($value);
  18.  
  19.     // Поля формы для введения данных
  20.     echo '<label for="myplugin_new_field">' . __("Автор", 'myplugin_textdomain' ) . '</label> ';
  21.     echo '<input type="text" id="myplugin_new_field" name="myplugin_new_field" value="'. $value[0] .'" size="25" />';
  22.  
  23.     echo '<label for="myplugin_new_field">' . __("В ролях", 'myplugin_textdomain' ) . '</label> ';
  24.     echo '<input type="text" id="myplugin_new_field" name="myplugin_new_field2" value="'. $value[1] .'" size="25" />';
  25. }
  26.  
  27.  
  28. ## Сохраняем данные, когда пост сохраняется
  29. add_action( 'save_post', 'myplugin_save_postdata' );
  30. function myplugin_save_postdata( $post_id ) {
  31.     // Убедимся что поле установлено.
  32.     if ( ! isset( $_POST['myplugin_new_field'] ) )
  33.         return;
  34.  
  35.     // проверяем nonce нашей страницы, потому что save_post может быть вызван с другого места.
  36.     if ( ! wp_verify_nonce( $_POST['myplugin_noncename'], plugin_basename(__FILE__) ) )
  37.         return;
  38.  
  39.     // если это автосохранение ничего не делаем
  40.     if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
  41.         return;
  42.  
  43.     // проверяем права юзера
  44.     if( ! current_user_can( 'edit_post', $post_id ) )
  45.         return;
  46.  
  47.     // Все ОК. Теперь, нужно найти и сохранить данные
  48.     // Очищаем значение поля input.
  49.     $my_data = sanitize_text_field( $_POST['myplugin_new_field'] );
  50.  
  51.     // Обновляем данные в базе данных.
  52.     update_post_meta( $post_id, 'my_meta_key', $my_data );
  53. }
Advertisement
Add Comment
Please, Sign In to add comment