Capacità del menu in WordPress

30 mar 2011, 18:30:04
Visualizzazioni: 18.8K
Voti: 3

È possibile specificare due gruppi di utenti (ad esempio amministratori e editori) nel campo delle capacità del menu admin? Ho provato il seguente codice ma non funziona:

add_submenu_page(
     'my-top-level-handle',
     'Titolo pagina',
     'Titolo sottomenu',
      array('administrator', 'editor'),
     'my-submenu-handle',
     'my_magic_function'
);

Messaggio di errore:

Warning: Illegal offset type in isset or empty in C:\wamp\www\wordpress\wp-includes\capabilities.php on line 712

3
Commenti

Non dovresti passare un ruolo (o ruoli) al parametro capability. Assegna una capacità che solo gli editori (o superiori) possiedono e la pagina sarà disponibile sia per gli amministratori che per gli editori.

t31os t31os
30 mar 2011 18:57:21

@t31os Per favore smetti di pubblicare le tue risposte nei commenti o non potrò darti la reputazione che meriti. :)

fuxia fuxia
31 mar 2011 01:12:36

@toscho - A volte intendo solo commentare e rispondere senza nemmeno rendermene conto, sono semplicemente troppo impaziente per pensare prima di cliccare quel pulsante... scusa.. :)

t31os t31os
31 mar 2011 01:28:03
Tutte le risposte alla domanda 2
0

Il parametro capability della funzione add_submenu_page() può accettare solo una singola capability, quindi se stai utilizzando i ruoli predefiniti puoi selezionare una capability dalla lunga lista che sia comune sia agli amministratori che agli editori (usa una di queste liberamente):

  • moderate_comments
  • manage_categories
  • manage_links
  • unfiltered_html
  • edit_others_posts
  • edit_pages
  • edit_others_pages
  • edit_published_pages
  • publish_pages
  • delete_pages
  • delete_others_pages
  • delete_published_pages
  • delete_others_posts
  • delete_private_posts
  • edit_private_posts
  • read_private_posts
  • delete_private_pages
  • edit_private_pages
  • read_private_pages
30 mar 2011 19:40:59
1

Come ha detto t31os, puoi utilizzare le capacità (capabilities) invece dei ruoli in quel caso. Un modo per farlo è usare le capacità di base del core. (Un metodo più avanzato consiste nell'aggiungere una capacità personalizzata ai ruoli che preferisci.) Le capacità predefinite si trovano in wp-admin/includes/schema.php nelle funzioni chiamate da populate_roles().

Se stai utilizzando ruoli/capacità standard, puoi specificare solo amministratori e editori tramite la capacità level_7 o edit_others_posts o diverse altre.

30 mar 2011 19:27:42
Commenti

level è deprecato da anni. Potrebbe essere rimosso in un futuro prossimo.

fuxia fuxia
31 mar 2011 01:14:29