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

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


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

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.


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>';
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.