Desative "edição rápida" apenas para não administradores em functions.php

11

Eu tenho isso em minhas funções.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);

para remover o link de edição rápida no back-end ao rolar a lista de postagens publicadas.

Funciona como um encanto, mas o desabilita mesmo para a função de administrador. É possível manter a exibição apenas para o administrador, enquanto continua o diabling para o resto? Obrigado!

RESOLVIDO graças a jfacemyer! Este é o código completo para adicionar 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);
}
user27309
fonte
Acredito que o plugin User Role Editor permitirá que você faça isso. Sinta-se livre para me dar um soco na cabeça, se eu estiver errado.
Jared Steffen
O plugin de função de usuário tornou meu site instável, então eu precisava desabilitá-lo e adicionei todos os pequenos pedaços de código necessários em minhas funções.php, disponibilizando-os para o caso de eu querer replicar este projeto no futuro. Infelizmente eu estou perdendo a remoção edição rápida apenas para não administradores ...
user27309
Cuidado: a solução que você descreveu não remove "editar" das ações em massa selecionadas. Para fazer isso, você deve adicionar este trecho de códigoadd_filter( 'bulk_actions-edit-post', 'remove_from_bulk_actions' ); function remove_from_bulk_actions( $actions ){ unset( $actions[ 'edit' ] ); return $actions; }
Marco Panichi

Respostas:

9

Use current_user_canpara encerrar a add_filterchamada:

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

manage_optionsé um recurso de administrador. Se o usuário atual puder fazer isso, ele é um administrador (em uma instalação WP baunilha).

Vejo:

http://codex.wordpress.org/Roles_and_Capabilities

e

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

jfacemyer
fonte
Não é especificamente mencionado aqui, mas para hierarchicaltipos de pós, você deve usar: page_row_actionsveja core.trac.wordpress.org/browser/tags/5.2.2/src/wp-admin/...
farinspace
8

Aqui está o código se você deseja remover a opção Edição Rápida do Pages também:

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);
}
Zeh Ferrari
fonte
0

Pelo menos no WP 4.3.1, é possível usar o nome da função current_user_can(). Portanto, o código agora pode ficar assim:

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);
}

Mais limpo e mais intuitivo.

jmarceli
fonte
0

Inclua isso em seu 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>';
}
Mark Steve Poniente
fonte