ปิดใช้งาน“ แก้ไขด่วน” เฉพาะสำหรับผู้ดูแลระบบที่ไม่ได้ทำงานใน


11

ฉันมีสิ่งนี้ในฟังก์ชั่นของฉัน

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

ฉันเชื่อว่าปลั๊กอิน User Role Editor จะช่วยให้คุณทำสิ่งนี้ได้ รู้สึกอิสระที่จะชกต่อยฉันในหัวถ้าฉันผิด
Jared Steffen

ปลั๊กอินบทบาทของผู้ใช้ทำให้ไซต์ของฉันไม่เสถียรดังนั้นฉันจึงต้องปิดการใช้งานและฉันได้เพิ่มโค้ดเล็ก ๆ ทั้งหมดที่ฉันต้องการใน function.php ของฉันทำให้มันพร้อมใช้งานในกรณีที่ฉันต้องการทำซ้ำโครงการนี้ในอนาคต น่าเสียดายที่ฉันไม่มีการลบการแก้ไขอย่างรวดเร็วเฉพาะสำหรับผู้ดูแลระบบที่ไม่ใช่ ...
27309

โปรดระวัง: วิธีการแก้ปัญหาที่คุณระบุไว้จะไม่ลบ "แก้ไข" ออกจากการกระทำที่เลือกจำนวนมาก ในการดำเนินการคุณต้องเพิ่มโค้ดขนาดสั้นนี้add_filter( 'bulk_actions-edit-post', 'remove_from_bulk_actions' ); function remove_from_bulk_actions( $actions ){ unset( $actions[ 'edit' ] ); return $actions; }
Marco Panichi

คำตอบ:


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


มันเป็นเรื่องที่ไม่ได้กล่าวถึงเฉพาะที่นี่ แต่สำหรับ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);
}

สะอาดและใช้งานง่ายขึ้น


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.