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

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


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

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.


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>';
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.