Вимкніть "швидке редагування" лише для не адміністратора в function.php


11

Я маю це у своїх функціях.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);

щоб видалити посилання для швидкого редагування в бекенді під час прокрутки списку опублікованих публікацій.

Це працює як шарм, але відключає його навіть для ролі адміністратора. Чи можливо, щоб він відображався лише для адміністратора, а ще набирав номер для решти? Дякую!

РЕШЕНИЙ завдяки jfacemyer! Це повний код, який потрібно додати в function.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);
}

Я вірю, що плагін редактора ролей користувачів дозволить вам це зробити. Не соромтеся вдарити мене по голові, якщо я помиляюся.
Джаред Стеффен

Плагін ролі користувача зробив мій сайт нестабільним, тому мені потрібно було його відключити, і я додав всі невеликі фрагменти коду, які мені потрібні у своїх функціях.php, роблячи їх доступними у випадку, якщо я хочу повторити цей проект у майбутньому. На жаль, мені не вистачає швидкого видалення редагування лише для не адміністраторів ...
user27309

Будьте уважні: розроблене вами рішення не видаляє "редагування" з об'ємних дій. Для цього вам потрібно додати цей фрагмент кодуadd_filter( 'bulk_actions-edit-post', 'remove_from_bulk_actions' ); function remove_from_bulk_actions( $actions ){ unset( $actions[ 'edit' ] ); return $actions; }
Марко Панічі

Відповіді:


9

Використовуйте current_user_canдля завершення add_filterвиклику:

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

manage_options- це можливість адміністратора. Якщо поточний користувач може це зробити, він є адміністратором (при встановленні WP-ванілі).

Подивитися:

http://codex.wordpress.org/Roles_and_Capability

і

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


Тут спеціально не згадується, але для hierarchicalтипів публікацій слід використовувати: page_row_actionsдив. Core.trac.wordpress.org/browser/tags/5.2.2/src/wp-admin/…
farinspace

8

Ось код, якщо ви бажаєте також видалити параметр швидкого редагування зі сторінок:

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

Принаймні, в WP 4.3.1 можна використовувати ім'я ролей у current_user_can(). Отже, код може виглядати приблизно так:

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

Чистіший та інтуїтивніший.


0

Включіть це у свою функцію.php

add_action('admin_head', 'wc_my_custom_css');
function wc_my_custom_css() {
     echo '<style>
               .hide-if-no-js {
                  display:none !important;
               }
          </style>';
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.