Disabilita "modifica rapida" solo per i non amministratori in funzioni.php


11

Ho questo nelle mie funzioni.php

function remove_quick_edit( $actions ) {
    unset($actions['inline hide-if-no-js']);
    return $actions;
}
add_filter('post_row_actions','remove_quick_edit',10,1);

per rimuovere il collegamento di modifica rapida nel back-end quando si scorre l'elenco dei post pubblicati.

Funziona come un incantesimo ma lo disabilita anche per il ruolo di amministratore. È possibile mantenerlo visibile solo per l'amministratore mentre è ancora diabetico per il resto? Grazie!

RISOLTO grazie a jfacemyer! Questo è il codice completo da aggiungere in Functions.php

function remove_quick_edit( $actions ) {
    unset($actions['inline hide-if-no-js']);
    return $actions;
}
if ( ! current_user_can('manage_options') ) {
    add_filter('post_row_actions','remove_quick_edit',10,1);
}

Credo che il plug-in Editor ruoli utente ti consentirà di farlo. Sentiti libero di darmi un pugno in testa se sbaglio.
Jared Steffen,

Il plug-in del ruolo utente ha reso instabile il mio sito, quindi ho dovuto disabilitarlo e ho aggiunto tutti i piccoli pezzi di codice di cui avevo bisogno nelle mie funzioni.php rendendoli disponibili nel caso in cui volessi replicare questo progetto in futuro. Purtroppo mi manca la rimozione rapida delle modifiche solo per i non amministratori ...
user27309

Fai attenzione: la soluzione che hai delineato non rimuove "modifica" dalla selezione di azioni collettive. Per farlo, devi aggiungere questo frammento di codiceadd_filter( 'bulk_actions-edit-post', 'remove_from_bulk_actions' ); function remove_from_bulk_actions( $actions ){ unset( $actions[ 'edit' ] ); return $actions; }
Marco Panichi,

Risposte:


9

Utilizzare current_user_canper concludere la add_filterchiamata:

if ( current_user_can('manage_options') ) {
} else {
    add_filter('post_row_actions','remove_quick_edit',10,1);
}

manage_optionsè una funzionalità di amministrazione. Se l'utente corrente può farlo, è un amministratore (su un'installazione WP vanilla).

Vedere:

http://codex.wordpress.org/Roles_and_Capabilities

e

http://codex.wordpress.org/Function_Reference/current_user_can


Non è specificamente menzionato qui, ma per i hierarchicaltipi di post, dovresti usare: page_row_actionsvedi core.trac.wordpress.org/browser/tags/5.2.2/src/wp-admin/…
farinspace

8

Ecco il codice se desideri rimuovere anche l'opzione Modifica rapida da Pages:

function remove_quick_edit( $actions ) {
    unset($actions['inline hide-if-no-js']);
    return $actions;
}
if ( !current_user_can('manage_options') ) {
    add_filter('page_row_actions','remove_quick_edit',10,1);
    add_filter('post_row_actions','remove_quick_edit',10,1);
}

0

Almeno in WP 4.3.1 è possibile usare il nome del ruolo in current_user_can(). Quindi il codice ora potrebbe apparire così:

function remove_quick_edit( $actions ) {
  unset($actions['inline hide-if-no-js']);
  return $actions;
}
if ( !current_user_can('administrator') ) {
  add_filter('post_row_actions','remove_quick_edit',10,1);
}

Più pulito e più intuitivo.


0

Includilo nel tuo function.php

add_action('admin_head', 'wc_my_custom_css');
function wc_my_custom_css() {
     echo '<style>
               .hide-if-no-js {
                  display:none !important;
               }
          </style>';
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.