Come risolvere "Non sei autorizzato a modificare questo elemento" per gli Admin sui post esistenti?

22 gen 2016, 14:42:18
Visualizzazioni: 30.8K
Voti: 3

Sto facendo alcuni lavori per un nuovo cliente (non tecnico, il loro precedente tecnico se n'è andato). La loro versione di WordPress è 4.3.2.

Ho un account amministratore e non riesco a modificare i post esistenti. Posso crearne di nuovi e modificarli, ma non posso modificare i post già presenti.

I link di modifica non vengono mostrati e se inserisco un URL che costruisco manualmente (come /wp-admin/post.php?post=1375&action=edit)

Ricevo questo messaggio di errore:

Non sei autorizzato a modificare questo elemento.

Ho pieno accesso al filesystem, al database, ecc. Come posso risolvere questo problema in modo da poter modificare i post esistenti attraverso l'interfaccia di WordPress?

Vedo che è installato il plugin User Role Editor.

L'ho attivato e aggiornato. Mostra che gli amministratori hanno permessi completi.

gli amministratori hanno permessi completi

5
Commenti

Sei sicuro al 100% che il tuo utente abbia il ruolo di Amministratore? Se sì, allora potrebbe dipendere da qualche plugin, quindi la procedura standard di debug è la seguente: Disabilita tutti i plugin e passa a un tema predefinito. Verifica se il problema persiste. Se ora funziona, riattiva tutto uno per uno e controlla quando si rompe.

kraftner kraftner
22 gen 2016 14:54:24

Grazie @kraftner. Sono sicuro al 99.9% :) Nei ruoli utente viene visualizzato come amministratore e ho creato anche un altro utente (stesso risultato). Grazie per il consiglio su come disabilitare i plugin (49 in totale, 23 attivi, 26 inattivi).

David Silva Smith David Silva Smith
22 gen 2016 14:58:54

Wow, con così tanti plugin le probabilità che uno sia il colpevole sono piuttosto alte. Inoltre, non lo stai facendo sul sito live ma su una copia locale, vero? :)

kraftner kraftner
22 gen 2016 15:00:24

lol, magari ci fosse un sito clone. Non li ho ancora disabilitati tutti e non so abbastanza di WP per sapere se può causare problemi. Penso che proverò questo (hack?) http://wordpress.stackexchange.com/questions/65418/admins-cant-edit-each-others-posts Sto cercando di individuare il file functions.php giusto (ce ne sono molti)

David Silva Smith David Silva Smith
22 gen 2016 15:07:13

Beh, allora io passo. Mettere le mani sui permessi degli admin e sui plugin in un sito live è come fare un intervento al cuore con le mani sporche e bendati.

kraftner kraftner
22 gen 2016 15:11:57
Tutte le risposte alla domanda 1
2

Ho risolto modificando il file /wp-includes/capabilities.php

Il codice originale era

function current_user_can( $capability ) {
    $current_user = wp_get_current_user();

    if ( empty( $current_user ) )
        return false;

    $args = array_slice( func_get_args(), 1 );
    $args = array_merge( array( $capability ), $args );

    return call_user_func_array( array( $current_user, 'has_cap' ), $args );
}

e l'ho modificato in

function current_user_can( $capability ) {
    $current_user = wp_get_current_user();

    if ( empty( $current_user ) )
        return false;

    if (is_admin())
        return true;
    $args = array_slice( func_get_args(), 1 );
    $args = array_merge( array( $capability ), $args );

    return call_user_func_array( array( $current_user, 'has_cap' ), $args );
}
22 gen 2016 15:38:18
Commenti

non dovresti modificare i file di sistema di WordPress perché la prossima volta che aggiornerai il core, le tue modifiche verranno sovrascritte

Stan Stan
11 mag 2016 04:28:32

concordo con il commento di @Stan. Modificare i file del Core è una soluzione temporanea che potrebbe essere sovrascritta senza che tu te ne accorga se hai gli aggiornamenti automatici attivi.

Gary Gary
29 nov 2016 18:57:26