Отключить «быстрое редактирование» только для не-администратора в functions.php

11

У меня есть это в моем functions.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! Это полный код для добавления в 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
источник
Я верю, что плагин User Role Editor позволит вам сделать это. Не стесняйтесь бить меня по голове, если я ошибаюсь.
Джаред Штеффен
Плагин роли пользователя сделал мой сайт нестабильным, поэтому мне пришлось отключить его, и я добавил все небольшие кусочки кода, которые мне нужны, в мой файл functions.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это возможность администратора Если текущий пользователь может сделать это, он является администратором (на установке vanilla WP).

Увидеть:

http://codex.wordpress.org/Roles_and_Capabilities

и

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

jfacemyer
источник
Здесь конкретно не упоминается, но для 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);
}
Zeh Ferrari
источник
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);
}

Чище и понятнее.

jmarceli
источник
0

Включите это в ваш 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>';
}
Марк Стив Пониенте
источник