การเพิ่มคอลัมน์ที่กำหนดเองให้กับประเภทโพสต์ที่กำหนดเอง


27

ฉันเคยทำมาก่อนหน้านี้ แต่ฉันลืมชื่อเบ็ดและหาที่ไหนไม่ได้ ...

สิ่งที่ฉันพยายามจะทำคือเพิ่มคอลัมน์ที่กำหนดเองในรายการประเภทโพสต์ที่กำหนดเองในผู้ดูแลระบบ

ตัวอย่างเช่นในผู้ดูแลระบบคลิกที่บทความฉันต้องการเพิ่มคอลัมน์ที่กำหนดเองที่นั่น


ฉันถาม (และตอบ) คำถามเดียวกัน (รวมถึงวิธีการจัดเรียงได้): wordpress.stackexchange.com/questions/253680//
เบต้า

คำตอบ:


57

hooks เพื่อสร้างคอลัมน์ที่กำหนดเองและข้อมูลที่เกี่ยวข้องสำหรับประเภทโพสต์ที่กำหนดเองคือmanage_{$post_type}_posts_columnsและ manage_{$post_type}_posts_custom_columnตามลำดับโดยที่{$post_type}ชื่อของประเภทโพสต์ที่กำหนดเอง

ตัวอย่างนี้จากเอกสารประกอบจะลบคอลัมน์ผู้เขียนและเพิ่มคอลัมน์ taxonomy และ meta:

// Add the custom columns to the book post type:
add_filter( 'manage_book_posts_columns', 'set_custom_edit_book_columns' );
function set_custom_edit_book_columns($columns) {
    unset( $columns['author'] );
    $columns['book_author'] = __( 'Author', 'your_text_domain' );
    $columns['publisher'] = __( 'Publisher', 'your_text_domain' );

    return $columns;
}

// Add the data to the custom columns for the book post type:
add_action( 'manage_book_posts_custom_column' , 'custom_book_column', 10, 2 );
function custom_book_column( $column, $post_id ) {
    switch ( $column ) {

        case 'book_author' :
            $terms = get_the_term_list( $post_id , 'book_author' , '' , ',' , '' );
            if ( is_string( $terms ) )
                echo $terms;
            else
                _e( 'Unable to get author(s)', 'your_text_domain' );
            break;

        case 'publisher' :
            echo get_post_meta( $post_id , 'publisher' , true ); 
            break;

    }
}

1
ขอบคุณสำหรับเบ็ดนี้ !!! นี่มันยอดเยี่ยม !! ไม่มีเอกสารที่ชัดเจนเกี่ยวกับ stackoverflow !!! : D ไชโยเพื่อน
Rodrigo Zuluaga

ไม่มีตัวเลือกในการตั้งค่าหมายเลขคอลัมน์หรือไม่ column_index[2]เช่น เนื่องจาก custom_column ปรากฏที่ท้ายคอลัมน์
Dilip Gupta

@DilipGupta $ คอลัมน์อาร์เรย์คุณสามารถเรียงลำดับก่อนที่คุณจะกลับมา
fogx

0

ฉันไม่แน่ใจว่าเป็นข้อมูลเมตาแบบกำหนดเองเริ่มต้นที่คุณต้องการแสดงเป็นคอลัมน์หรือไม่ แต่คุณสามารถพิจารณาใช้ปลั๊กอินฟรีที่ให้คุณเพิ่มคอลัมน์เพื่อแสดงฟิลด์ที่กำหนดเองได้ https://wordpress.org/plugins/codepress-admin-columns/

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


ไม่ได้ใช้! จะทำให้ไซต์ของคุณพัง: ข้อผิดพลาดร้ายแรงของ PHP: ไม่สามารถประกาศใหม่ AC () (ประกาศก่อนหน้านี้ใน [redacted] \\ wp-content \\ themes \ [redacted] \\ function.php: 628) ใน [redacted] \\ wp-content \\ ปลั๊กอิน \\ codepress-admin-columns \\ api.php ในบรรทัดที่ 9
Peter Kionga-Kamau

@ PeterKionga-Kamau นี่เป็นปัญหาความเข้ากันได้กับชุดรูปแบบเฉพาะของคุณ ข้อผิดพลาดที่คุณโพสต์จะไม่ปรากฏขึ้นพร้อมกับธีม WP เริ่มต้น (เช่นยี่สิบ) ฉันยังใช้ปลั๊กอินกับชุดรูปแบบ Divi และพบว่ามันมีประโยชน์มาก
ฟิลิปป์

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