Come posso risolvere l'errore "spiacenti, non sei autorizzato ad accedere a questa pagina" che ottengo sui link "plugin > impostazioni"?
Ho appena aggiornato a WordPress 4.6 e ora quando provo a cliccare sul link Impostazioni di alcuni dei miei plugin ricevo il messaggio "Spiacenti, non sei autorizzato ad accedere a questa pagina."
Posso attivare/disattivare il plugin senza problemi ma per qualche motivo non riesco ad accedere alla vista delle impostazioni.
Ho provato a seguire alcuni dei metodi utilizzati da altri per risolvere questo problema, come aggiungere un nuovo amministratore e aggiornare i valori "wp_capabilities" e "wp_user_level" nel database, ma continua a non funzionare.
Qualcuno sa come posso fare ulteriore debug o risolvere questo problema?
Se hai HTTPS su WordPress e hai aggiunto il codice qui sotto nel file wp-config.php, assicurati che queste righe siano all'inizio della pagina. Ho riscontrato questo problema e potrebbe essere d'aiuto.
define('FORCE_SSL_ADMIN', true);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';

Come è correlato questo all'errore su una pagina specifica soltanto? Per favore, spiegatelo nella vostra risposta.

Questo ha risolto il problema per me. Per chiarire perché è rilevante: le persone che utilizzano un proxy inverso e https potrebbero dover aggiungere queste righe, vedi: https://wordpress.org/support/article/administration-over-ssl/
Tuttavia, la documentazione non chiarisce che devono essere posizionate in cima al file wp-config. Io le ho inserite in fondo e ho ricevuto il messaggio "spiacente, non sei autorizzato.."
Ho perso tempo con tutte le altre soluzioni che si sono rivelate inutili, finché non ho trovato questa.

Secondo me, accedi a PHPMyAdmin, vai su wp_usermeta, quindi modifica wp32_capabilities di qualsiasi utente e aggiungi questo a:1:{s:13:"administrator";s:1:"1";}. Cambierà i privilegi dell'utente in amministratore. Ci sono diverse ragioni per cui questo potrebbe cambiare e potresti ottenere l'errore.
Ho riscontrato questo errore sul mio sito web e ho provato questa soluzione una sola volta ed è stato risolto.

Puoi mantenere più di un'installazione di WordPress purché i prefissi siano diversi e non entrino in conflitto. Questo articolo contiene la soluzione per l'errore di accesso quando viene modificato il prefisso ma si presenta l'errore: https://www.mysysadmintips.com/other/web/743-wordpress-admin-sorry-you-are-not-allowed-to-access-this-page

Ho scoperto che il messaggio "Spiacente, non sei autorizzato ad accedere a questa pagina" si verifica principalmente quando diversi siti WordPress si trovano nello stesso phpMyAdmin - tutti con lo stesso prefisso delle tabelle, indipendentemente dal nome del database. Non posso dire quanti siti WordPress ci si aspetta che siano nello stesso phpMyAdmin con lo stesso prefisso delle tabelle.

Ciao - poiché i link a risorse esterne possono diventare obsoleti, potresti per favore espandere la tua risposta in modo che possa essere autonoma?

Questo non ha senso. phpMyAdmin non c'entra nulla. La tua installazione di WordPress guarderà solo un database nel tuo server MySQL. A meno che tu non stia cercando di installare più siti sullo stesso database con lo stesso prefisso, questo non dovrebbe mai essere un problema. Puoi spiegare come questa risposta risolva effettivamente il problema da un punto di vista tecnico?

Per impostazione predefinita, le capacità verranno assegnate ai ruoli "Amministratore" e "Editore" quando il plugin viene eseguito per la prima volta. È possibile aggiungere o rimuovere le capacità per l'utente utilizzando un ottimo plugin chiamato Members se non è già presente.

WordPress mostra una pagina 403 predefinita quando si verifica uno dei seguenti eventi nel backend:
- L'utente non ha il permesso di accesso perché il suo ruolo ha autorizzazioni insufficienti
- La pagina backend non è stata trovata, cosa che accade quando un plugin o un tema non è più attivo e ha lasciato dati residui nel database, oppure quando esegue il routing errato della sua pagina di amministrazione a causa di una configurazione errata. Questo spesso accade se si utilizzano plugin per la riscrittura degli URL, che non gestiscono correttamente gli URI del backend o ne omettono la riscrittura. Spesso questo porta anche al blocco dell'accesso alla schermata di login.
- Si verifica un errore con il meccanismo interno di routing del core, e riceve un risultato che non comprende, non può elaborare o che mappa a uno schema non riconosciuto
- Si verifica un errore critico ma non fatale durante la fase di routing per la dashboard
Nel tuo caso, probabilmente si tratta della terza possibilità. Il codice del core di WordPress non effettua un controllo rigoroso dei tipi e tipicamente procede attraverso le sue operazioni interne senza dedicare molto tempo alla verifica del formato o della validità dei dati ricevuti per lo scopo corrente. Questo porta frequentemente a errori strani e difficili da diagnosticare se non si comprende come funzionano gli interni del core.
Come primo intervento preliminare, considera i seguenti rimedi:
- Assicurati che ogni sito in esecuzione sulla stessa installazione abbia il proprio database assegnato, con un utente dedicato che non abbia i permessi per accedere ad altri database all'interno del tuo cluster. Ad esempio, quando accedi a PhpMyAdmin come root, hai accesso all'intero cluster. Per ogni applicazione, dovrebbe esserci un database e un utente dedicati all'interno del tuo cluster, e l'utente non dovrebbe avere accesso ad altri database a meno che non si tratti di una risorsa condivisa creata esplicitamente per lo scambio di dati tra due applicazioni. Questo riduce la probabilità che la tua applicazione si confonda cercando di recuperare dati dal database sbagliato e previene problemi di collisione tra due o più installazioni di WordPress con prefissi identici. Non installare due WordPress nello stesso database, altrimenti entrambi smetteranno di funzionare.
- Controlla il pannello "Network" nel web inspector del tuo browser e verifica il codice di errore della richiesta. Se è un 403 (dovrebbe esserlo), allora il problema è che la pagina non esiste effettivamente o che l'utente non ha i permessi. Se è un 500 (non dovrebbe esserlo), significa che il server ha incontrato un errore ed è ricorso alla procedura di uscita standard. Se è un 500, hai un plugin difettoso, un tema problematico o un problema con il database da risolvere. Se è un 403, è molto probabilmente un aggiornamento fallito, una configurazione errata o un accesso negato legittimo.

Cambia il prefisso della tabella in "_" nel file wp-config.php e salva. Poi prova a caricare wp-admin/. Potresti vedere un messaggio di nuova installazione. Non installare, torna indietro e cambia nuovamente il prefisso in "WP". Questo metodo ha funzionato per me, ma non sono sicuro che funzioni per tutti.
prima: $table_prefix = 'wp_';
durante: $table_prefix = '_';
dopo: $table_prefix = 'WP_';

Una soluzione simile ha risolto il messaggio 403: Siamo spiacenti, non sei autorizzato ad accedere a questa pagina
.
Nel mio caso, durante la migrazione a un nuovo server, i nomi delle tabelle del database sono stati modificati in minuscolo, compresi quelli referenziati da $table_prefix
.
Aggiornando $table_prefix
in minuscolo ho fatto funzionare il frontend, ma /wp-admin
restituiva l'errore 403.
La soluzione è stata controllare il database per trovare riferimenti al prefisso originale in maiuscolo. Ad esempio, la tabella _usermeta.meta_key
aveva molteplici istanze del prefisso originale in maiuscolo.
