Как удалить возможность (метабоксы) у страниц и добавить блок произвольных полей?
Доброго времени суток. Нужно изменить ввод и вывод нескольких страниц по их ID:
- Удалить зарегистрированную возможность у страниц по их ID.
- Добавить блок произвольных полей страницам по их ID.
Хотелось бы сделать это без плагинов, пните пожалуйста в нужном направлении. Буду очень благодарен.
## Удаляем ненужные метабоксы у типа записи ## Удалить зарегистрированную возможность у страниц по их ID. add_filter( 'admin_menu', 'hpl_manager_meta_boxes' ); function hpl_manager_meta_boxes(){ // выходим если это не редактирование поста if( @ $_GET['action'] !== 'edit' ) return; $post = get_post( $_GET['post'] ); // выходим если это не нужный там пост if( ! in_array($post->ID, [72,98]) ) return; $post_type = 'post'; // удаляем свойства типа записи (метабокс) remove_post_type_support( $post_type, 'title' ); remove_post_type_support( $post_type, 'editor' ); remove_post_type_support( $post_type, 'author' ); remove_post_type_support( $post_type, 'thumbnail' ); remove_post_type_support( $post_type, 'excerpt' ); remove_post_type_support( $post_type, 'trackbacks' ); remove_post_type_support( $post_type, 'custom' ); remove_post_type_support( $post_type, 'comments' ); remove_post_type_support( $post_type, 'revisions' ); remove_post_type_support( $post_type, 'post-formats' ); // удалим метабоксы remove_meta_box( 'commentsdiv' , $post_type , 'normal' ); // removes comments remove_meta_box( 'authordiv' , $post_type , 'normal' ); // removes author remove_meta_box( 'pageparentdiv' , $post_type , 'normal' ); // свойства записи remove_meta_box( 'tagsdiv-post_tag' , $post_type , 'normal' ); // метки remove_meta_box( 'categorydiv' , $post_type , 'normal' ); // рубрики remove_meta_box( 'postcustom' , $post_type , 'normal' ); // произвольные поля remove_meta_box( 'commentstatusdiv' , $post_type , 'normal' ); // обсуждение remove_meta_box( 'slugdiv' , $post_type , 'normal' ); // ярлык } ## добавляем мтабокс по условию (на нужных постах) new Kama_Post_Meta_Box( array( 'id' => '_mybox', 'title' => 'Виден для указанного поста', 'post_type' => 'post', // Добавить блок произвольных полей страницам по их ID. 'disable_func' => function($post){ if( ! in_array($post->ID, [72,98]) ) return 'отключить'; }, 'fields' => array( 'fname' => array( 'type'=>'text', 'title'=>'Поле-поле' ), ), ) );Получим:
Свой метабокс в этом коде добавляется через класс Kama_Post_Meta_Box. Он позволяет создать любой метабокс и указать условия его появления. Только это все кодом делается. Пример, тут показан и на странице описания класса.
По удалению ненужных метабоксов для указанного по ID поста: в коде все есть. $post_type = 'post'; поменяй и ID записи(сей) поменяй/укажи как надо. Больше особых комментариев вроде бы нет.
Огромное спасибо)То что искал.