ค้นหา User ในหลังบ้านจาก Custom field ของ WordPress

หากต้องการค้นหาผู้ใช้ใน WordPress admin ตามชื่อฟิลด์ที่กำหนดเอง เราสามารถขยายข้อความค้นหาของผู้ใช้ได้โดยใช้ pre_user_query action hook โดยการแก้ไขอาร์กิวเมนต์คิวรีครับ ซึ่งสามารถรวมฟิลด์ที่กำหนดเองในการค้นหาได้ ตามตัวอย่างโค้ดต่อไปนี้ครับผม

 

function extend_admin_user_search( $user_query ) {
    // Check if we are on the admin side and a search query is present
    if ( is_admin() && isset( $_GET['s'] ) && ! empty( $_GET['s'] ) ) {
        global $wpdb;

        $search_term = $_GET['s'];
        $meta_key = 'your_custom_field_name';

        // Modify the user query to include the custom field
        $user_query->query_from .= " LEFT JOIN $wpdb->usermeta AS um ON ($wpdb->users.ID = um.user_id)";
        $user_query->query_where .= $wpdb->prepare(
            " OR (um.meta_key = %s AND um.meta_value LIKE %s)",
            $meta_key,
            '%' . $wpdb->esc_like( $search_term ) . '%'
        );
    }
}
add_action( 'pre_user_query', 'extend_admin_user_search' );

ในโค้ดด้านบน ให้แทนที่ ‘your_custom_field_name’ ด้วยชื่อจริงของฟิลด์ที่คุณกำหนดเอง ข้อมูลโค้ดนี้เชื่อมโยงกับ Action ของ ‘pre_user_query’ และเพิ่มการรวมเข้ากับตาราง usermeta ทำให้เราสามารถค้นหาฟิลด์ที่กำหนดเองที่ระบุได้ ข้อความค้นหาจะถูกเปรียบเทียบกับค่าฟิลด์ที่กำหนดเองโดยใช้ตัวดำเนินการเปรียบเทียบ LIKE ครับ

โค้ดนี้ให้เรานำไปเขียนที่ไฟล์ functions.php ของธีมหรือปลั๊กอินที่สามารถเพิ่มโค้ดเหล่านี้ได้นะครับ ซึ่งเมื่อบันทึกแล้วเราก็จะสามารถค้นหาผู้ใช้งานจากระบบหลังบ้าน ด้วย field ที่เรากำหนดไว้ได้ครับ

อย่างไรก็ตามนะครับ โปรดทราบว่าการแก้ไขข้อความค้นหาของผู้ใช้อาจส่งผลต่อประสิทธิภาพ โดยเฉพาะอย่างยิ่งหากคุณมีผู้ใช้จำนวนมากหรือมีฟิลด์ที่กำหนดเองที่ซับซ้อนครับผม

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
Manage Consent Preferences
  • คุกกี้ที่จำเป็น
    Always Active

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้

  • คุกกี้เพื่อการวิเคราะห์

    คุกกี้ประเภทนี้จะทำการเก็บข้อมูลการใช้งานเว็บไซต์ของคุณ เพื่อเป็นประโยชน์ในการวัดผล ปรับปรุง และพัฒนาประสบการณ์ที่ดีในการใช้งานเว็บไซต์ ถ้าหากท่านไม่ยินยอมให้เราใช้คุกกี้นี้ เราจะไม่สามารถวัดผล ปรับปรุงและพัฒนาเว็บไซต์ได้

  • คุกกี้เพื่อปรับเนื้อหาให้เข้ากับกลุ่มเป้าหมาย

    คุกกี้ประเภทนี้จะเก็บข้อมูลต่าง ๆ รวมทั้งข้อมูลวส่วนบบุคลเกี่ยวกับตัวคุณเพื่อเราสามารถนำมาวิเคราะห์ และนำเสนอเนื้อหา ให้ตรงกับความเหมาะสมกับความสนใจของคุณ ถ้าหากคุณไม่ยินยอมเราจะไม่สามารถนำเสนอเนื้อหาและโฆษณาได้ไม่ตรงกับความสนใจของคุณ

บันทึก