Wyłącz „szybką edycję” tylko dla nieadministratora w functions.php


11

Mam to w mojej funkcji.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);

aby usunąć link do szybkiej edycji w backendie podczas przewijania listy opublikowanych postów.

Działa jak urok, ale wyłącza go nawet dla roli administratora. Czy jest możliwe, aby wyświetlał się tylko dla administratora, jednocześnie szukając reszty? Dzięki!

ROZWIĄZANE dzięki jfacemyer! Jest to pełny kod do dodania w 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);
}

Wierzę, że wtyczka User Role Editor pozwoli ci to zrobić. Jeśli się mylę, możesz mnie uderzyć w głowę.
Jared Steffen

Wtyczka roli użytkownika sprawiła, że ​​moja strona jest niestabilna, więc musiałem ją wyłączyć i dodałem wszystkie małe fragmenty kodu, których potrzebowałem w swoich funkcjach. Php udostępniając je na wypadek, gdyby chciałem w przyszłości replikować ten projekt. Niestety brakuje mi szybkiego usuwania edycji tylko dla nie-administratorów ...
user27309 20.03.2013

Zachowaj ostrożność: przedstawione rozwiązanie nie usuwa opcji „edytuj” z działań zbiorczych. Aby to zrobić, musisz dodać ten fragment koduadd_filter( 'bulk_actions-edit-post', 'remove_from_bulk_actions' ); function remove_from_bulk_actions( $actions ){ unset( $actions[ 'edit' ] ); return $actions; }
Marco Panichi

Odpowiedzi:


9

Użyj, current_user_canaby zakończyć add_filterpołączenie:

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

manage_optionsjest funkcją administratora. Jeśli bieżący użytkownik może to zrobić, jest administratorem (w instalacji waniliowej WP).

Widzieć:

http://codex.wordpress.org/Roles_and_Capabilities

i

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


Nie jest tu specjalnie wymienione, ale dla hierarchicaltypów postów powinieneś użyć: page_row_actionspatrz core.trac.wordpress.org/browser/tags/5.2.2/src/wp-admin/…
farinspace

8

Oto kod, jeśli chcesz również usunąć opcję Szybkiej edycji ze stron:

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

Przynajmniej w WP 4.3.1 można użyć nazwy roli w current_user_can(). Kod może teraz wyglądać następująco:

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

Czystszy i bardziej intuicyjny.


0

Uwzględnij to w pliku 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>';
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.