По умолчанию доступ к созданному кастомному меню для редактирования закрыт. Чтобы открыть его необходимо прописать capability (Права пользователя (возможности)) для этого буду использовать add_filter. Пример возможного кода.
<? add_action( 'admin_menu', array( $this, 'add_plugin_page' ) ); add_action( 'admin_init', array( $this, 'page_init' ) ); // Уровень доступа для редактора add_filter( 'option_page_capability_'.'my_option_group', 'my_page_capability' ); // my_option_group название группы page_init->register_setting->my_option_group // Изменим права function my_page_capability( $capability ) { return 'edit_posts'; } public function add_plugin_page() { add_menu_page( 'Title при переходе в меню', //Текст, который будет использован в теге <title> на странице, относящейся к пункту меню 'Название в сайдбаре', //Название пункта меню в сайдбаре админ-панели. 'edit_posts', // Уровень доступа для редакторов | Все уровни доступа можно посмотреть https://wordpress.org/support/article/roles-and-capabilities/ 'my-setting-admin', // Уникальное название (slug), по которому затем можно обращаться к этому меню | Пример: /wp-admin/admin.php?page=my-setting-admin 'create_admin_page' // Название функции, которая выводит контент страницы пункта меню. ); } public function page_init() { register_setting( 'my_option_group', // Название группы, к которой будет принадлежать опция 'my_option_name', // Название опции, которая будет сохраняться в БД ); } // Render the "Custom Plugins Addon" admin page. function create_admin_page() { ?> <div class="wrap"> <h1>Ваш плагин</h1> <?php settings_errors(); ?> <form method="post" action="options.php"> <input id='fieldName' type='text' name='my_option_name[fieldName]' value="<?=$this->options['fieldName']?>" /> <?php submit_button(); ?> </form> </div> <?php }
Добавить комментарий