Deshabilite la "edición rápida" solo para usuarios que no sean administradores en functions.php


11

Tengo esto en mis funciones.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 eliminar el enlace de edición rápida en el backend al desplazarse por la lista de publicaciones publicadas.

Funciona de maravilla, pero lo deshabilita incluso para el rol de administrador. ¿Es posible mantenerlo solo para el administrador mientras sigue marcando el resto? ¡Gracias!

¡RESUELTO gracias a jfacemyer! Este es el código completo para agregar en 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);
}

Creo que el complemento Editor de roles de usuario te permitirá hacer esto. Siéntete libre de golpearme en la cabeza si me equivoco.
Jared Steffen

El complemento de rol de usuario ha hecho que mi sitio sea inestable, por lo que necesitaba deshabilitarlo y he agregado todos los pequeños trozos de código que necesitaba en mis functions.php para que estén disponibles en caso de que quiera replicar este proyecto en el futuro. Por desgracia, me falta la eliminación de edición rápida sólo a no administradores ...
user27309

Tenga cuidado: la solución que describió no elimina "editar" de la selección de acciones masivas. Para hacerlo, debe agregar este fragmento 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, el

Respuestas:


9

Use current_user_canpara finalizar la add_filterllamada:

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

manage_optionses una capacidad de administrador. Si el usuario actual puede hacerlo, es un administrador (en una instalación vainilla de WP).

Ver:

http://codex.wordpress.org/Roles_and_Capabilities

y

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


No se menciona específicamente aquí, pero para los hierarchicaltipos de publicación, debe usar: page_row_actionsconsulte core.trac.wordpress.org/browser/tags/5.2.2/src/wp-admin/…
farinspace

8

Aquí está el código si también desea eliminar la opción Edición rápida de las páginas:

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

Al menos en WP 4.3.1 es posible usar el nombre de rol en current_user_can(). Entonces el código ahora puede verse así:

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

Más limpio y más intuitivo.


0

Incluye esto en tu 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>';
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.