Открыть доступ меню для редакторов

По умолчанию доступ к созданному кастомному меню для редактирования закрыт. Чтобы открыть его необходимо прописать 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
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *