Consentire l'accesso agli editor per i plugin aggiunti
Ho creato un plugin personalizzato che voglio che gli utenti con ruolo Editor possano utilizzare.
Ho trovato un link qui per consentire l'accesso agli editor per modificare i menu consentire agli editor di modificare i menu?
utilizzando questo codice.
$role_object = get_role( 'editor' );
// aggiungi la capacità $cap a questo oggetto ruolo
$role_object->add_cap( 'edit_theme_options' );
Quindi, c'è un modo possibile per consentire agli Editor l'accesso ai miei plugin personalizzati aggiunti?

Dopo una rapida ricerca, ho trovato la risposta qui
Sostituendo tutte le occorrenze di 'manage_options' con 'edit_pages' nei file dei miei Plugin.
Gli editori possono utilizzare i plugin con il capability 'edit_pages'

Ho provato il tuo suggerimento ma non ha funzionato per me.
Puoi fornire maggiori dettagli su come realizzarlo?, per favore

Va bene, hai bisogno di un frammento di codice di esempio per un Plugin su Github? Dovrebbe funzionare

Per favore aggiungi il seguente codice.
function activate_plugin_name() {
$role = get_role( 'editor' );
$role->add_cap( 'manage_options' ); // capability
}
// Registriamo il nostro hook di attivazione
register_activation_hook( __FILE__, 'activate_plugin_name' );
function deactivate_plugin_name() {
$role = get_role( 'editor' );
$role->remove_cap( 'manage_options' ); // capability
}
// Registriamo il nostro hook di disattivazione
register_deactivation_hook( __FILE__, 'deactivate_plugin_name' );`

Questo è solo un caso d'uso della necessità di attivare un plugin per il ruolo utente "editor". Il plugin si chiama bulk images to posts. Questo plugin è attivo solo per il ruolo admin. Quindi per attivarlo per il ruolo "editor", devi passare attraverso il file "bulk-images-to-posts.php" e cercare la funzione big_create_menu() (responsabile della creazione di un menu nella barra admin laterale) Ora se sostituisci "manage_options" con "edit_pages" vedrai che nel menu admin del ruolo "editor", il plugin diventa attivo. Ancora una volta, questo è solo un esempio di 1 caso d'uso per mostrare l'effetto di "edit_pages"
Ecco uno snippet di codice che mostra questo:
// crea un nuovo menu di primo livello
global $bip_admin_page;
$bip_admin_page = add_menu_page(__('Bulk Images to Posts Uploader','bulk-images-to-posts'), __('Bulk','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post','bip_upload_page','dashicons-images-alt2');
// crea pagine di sottomenu
add_submenu_page( 'bulk-images-to-post', __('Bulk Images to Post - Upload','bulk-images-to-posts'), __('Uploader','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post');

Grazie Liz Eipe per la tua soluzione, ma purtroppo non ha funzionato per me. Ciò che ha funzionato per me è stato cambiare la 'capability' per tutti gli hook add_menu_page() e add_submenu_page().
Fondamentalmente, il valore di capability che imposti corrisponde all'accesso per diversi tipi e combinazioni di utenti. Puoi visualizzare tutte le capability possibili e il loro accesso qui.
Ho scelto 'publish_posts' come valore, che concede a Super Admin, Admin, Editor e Author l'accesso alla pagina admin che registri con i tuoi hook.
Questo era il mio codice prima:
add_menu_page(
'My Menu Title',
'custom menu',
'administrator', // Solo accesso admin
'myplugin/myplugin-admin.php',
'',
plugins_url( 'myplugin/images/icon.png' ),
3
);
E ora con accesso per Admin, Editor e Author è cambiato in:
add_menu_page(
'My Menu Title',
'custom menu',
'publish_posts', // Accesso Admin, Editor, Author
'myplugin/myplugin-admin.php',
'',
plugins_url( 'myplugin/images/icon.png' ),
3
);
Un'ultima piccola nota; non dimenticare di cambiare questo per tutte le pagine admin del plugin a cui vuoi che altri utenti abbiano accesso, come tutte le pagine dei sottomenu.
