Nonaktifkan "edit cepat" hanya untuk non admin di functions.php

11

Saya memiliki ini di functions.php saya

function remove_quick_edit( $actions ) {
    unset($actions['inline hide-if-no-js']);
    return $actions;
}
add_filter('post_row_actions','remove_quick_edit',10,1);

untuk menghapus tautan edit cepat di backend saat menggulir daftar posting yang diterbitkan.

Ini berfungsi seperti pesona tetapi menonaktifkannya bahkan untuk peran admin. Apakah mungkin untuk tetap menampilkan hanya untuk admin sementara masih mengaktifkan sisanya? Terima kasih!

ASK terima kasih kepada jfacemyer! Ini adalah kode lengkap untuk ditambahkan di 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);
}
pengguna27309
sumber
Saya yakin plugin Editor Peran Pengguna akan membiarkan Anda melakukan ini. Jangan ragu untuk memukul kepala saya jika saya salah.
Jared Steffen
Plugin peran pengguna telah membuat situs saya tidak stabil sehingga saya harus menonaktifkannya dan saya telah menambahkan semua potongan kecil kode yang saya butuhkan di functions.php saya membuatnya tersedia jika saya ingin mereplikasi proyek ini di masa depan. Sayangnya saya melewatkan penghapusan edit cepat hanya untuk non admin ...
user27309
Harap berhati-hati: solusi yang Anda sebutkan tidak menghapus "edit" dari tindakan massal pilih. Untuk melakukannya, Anda harus menambahkan potongan kode iniadd_filter( 'bulk_actions-edit-post', 'remove_from_bulk_actions' ); function remove_from_bulk_actions( $actions ){ unset( $actions[ 'edit' ] ); return $actions; }
Marco Panichi

Jawaban:

9

Gunakan current_user_canuntuk menutup add_filterpanggilan:

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

manage_optionsadalah kemampuan Admin. Jika pengguna saat ini dapat melakukannya, ia adalah admin (pada instalasi vanilla WP).

Lihat:

http://codex.wordpress.org/Roles_and_Capabilities

dan

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

jfacemyer
sumber
Ini tidak disebutkan secara khusus di sini, tetapi untuk hierarchicaljenis posting, Anda harus menggunakan: page_row_actionslihat core.trac.wordpress.org/browser/tags/5.2.2/src/wp-admin/…
farinspace
8

Ini adalah kode jika Anda ingin menghapus opsi Edit Cepat dari Halaman juga:

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
sumber
0

Paling tidak di WP 4.3.1 dimungkinkan untuk menggunakan nama peran di current_user_can(). Jadi kodenya sekarang mungkin terlihat seperti ini:

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

Lebih bersih dan lebih intuitif.

Jmarceli
sumber
0

Sertakan ini di function.php Anda

add_action('admin_head', 'wc_my_custom_css');
function wc_my_custom_css() {
     echo '<style>
               .hide-if-no-js {
                  display:none !important;
               }
          </style>';
}
tandai steve poniente
sumber