Lưu trữ loại bài đăng tùy chỉnh với các trường tùy chỉnh trong Genesis

Trong nhóm Genesis Facebook, một người dùng hỏi:

Tôi đang tạo một trang lưu trữ tùy chỉnh cho một loại bài đăng tùy chỉnh (được gọi là Khoa). Tôi muốn sử dụng Trường tùy chỉnh nâng cao để tạo các trường trên trang đăng bài cho khách hàng (một khoa đại học) để nhập Tên, Khóa học đã dạy, Nghiên cứu và địa chỉ email. Tôi muốn khách hàng đặt ảnh tiểu sử (headshot) của từng thành viên trong khoa làm hình ảnh nổi bật. Tôi định yêu cầu họ đánh máy tiểu sử của họ trên phần chính của trang bài đăng. Tôi muốn các trường tùy chỉnh (Tên, Khóa học đã dạy, Nghiên cứu và Địa chỉ email) hiển thị trên trang lưu trữ dưới hình ảnh của chúng (hình ảnh nổi bật). Ai đó có thể bắn cho tôi một hướng dẫn về cách làm điều này?

Vì vậy, tôi muốn trang lưu trữ của mình xuất các trường tùy chỉnh nâng cao dưới hình ảnh nổi bật…

Hướng dẫn này cung cấp các bước để đăng ký faculty CPT (Loại bài đăng tùy chỉnh), tạo ba trường tùy chỉnh được liên kết bằng cách sử dụng plugin Trường tùy chỉnh nâng cao và hiển thị giá trị của các trường tùy chỉnh này (nếu không trống) cùng với hình ảnh nổi bật trên trang lưu trữ CPT.

Mặc dù hướng dẫn đã được viết cho Genesis Sample 2.6.0, nhưng nó sẽ hoạt động với một vài điều chỉnh trong bất kỳ chủ đề Genesis nào.

Bước 1

Cài đặt và kích hoạt plugin Giao diện người dùng loại bài đăng tùy chỉnh.

Chuyển đến Giao diện người dùng CPT> Thêm / Chỉnh sửa Loại bài đăng và thêm loại bài đăng tùy chỉnh của bạn.

Cuộn xuống và thay đổi “Đã lưu trữ” từ Sai thành Đúng.

Bước 2

Cài đặt và kích hoạt Trường tùy chỉnh nâng cao. Tôi đang sử dụng phiên bản Pro trong ví dụ này.

Đi tới Trường tùy chỉnh> Thêm mới và tạo một nhóm trường mới có tên say ,.Faculty Meta

Đặt nhóm trường này xuất hiện cho các mục nhập CPT của Khoa.

Bước 3

Thêm phần sau vào functions.php của chủ đề con :

add_image_size( 'faculty-image', 400, 400, true );

Bước 4

Hãy thêm một mẫu cho faculty trang lưu trữ CPT.

Tạo một tệp có tên archive-khoa.php trong thư mục chủ đề con có mã sau:

<?php
/**
 * Template for `faculty` CPT archive page.
 */

// Forces full width content.
add_filter( 'genesis_pre_get_option_site_layout', '__genesis_return_full_width_content' );

// Removes post info.
remove_action( 'genesis_entry_header', 'genesis_post_info', 12 );

// Removes post image.
remove_action( 'genesis_entry_content', 'genesis_do_post_image', 8 );

add_action( 'genesis_entry_content', 'sk_image', 8 );
/**
 * Displays faculty member's photo.
 */
function sk_image() {

    if ( ! has_post_thumbnail() ) {
        return;
    }

    // get the URL of featured image.
    $image_url = genesis_get_image( 'format=url&size=faculty-image' );

    // get the alt text of featured image.
    $thumb_id = get_post_thumbnail_id( get_the_ID() );
    $alt = get_post_meta( $thumb_id, '_wp_attachment_image_alt', true );

    // if no alt text is present for featured image, set it to entry title.
    if ( '' === $alt ) {
        $alt = the_title_attribute( 'echo=0' );
    }

    // display the image.
    printf(
        '<a href="%s" class="faculty-member-photo"><img src="%s" alt="%s" /></a>',
        esc_url( get_the_permalink() ),
        esc_url( $image_url ),
        esc_attr( $alt )
    );

    echo '<h3 class="faculty-heading">Bio</h3>';

}

add_action( 'genesis_entry_content', 'sk_fields' );
/**
 * Shows the values of Courses, Research and Email custom fields below the content.
 */
function sk_fields() {

    $courses = get_post_meta( get_the_ID(), 'courses', true );
    $research = get_post_meta( get_the_ID(), 'research', true );
    $email = get_post_meta( get_the_ID(), 'email', true );

    if ( $courses ) {
        echo '<h3 class="faculty-heading">Courses</h3>';

        echo wpautop( $courses );
    }

    if ( $research ) {
        echo '<h3 class="faculty-heading">Research</h3>';

        echo wpautop( $research );
    }

    if ( $email ) {
        echo '<h3 class="faculty-heading">Email</h3>';

        printf( '<a href="mailto:%s">%s</a>',
            $email,
            $email
        );
    }

}

genesis();

Bước 5

Thêm phần sau vào style.css của chủ đề con phía trên các truy vấn phương tiện:

.faculty-heading {
    margin-top: 40px;
}

.faculty .entry-header {
    margin-bottom: 40px;
}

.post-type-archive-faculty .content {
    width: 100%;
}

@media only screen and (min-width: 600px) {

    .post-type-archive-faculty .content {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-gap: 40px;
    }
}

Bước 6

Đi tới Khoa> Thêm Mới và thêm các mục nhập CPT của bạn.

Đặt / tải lên hình ảnh nổi bật. Đảm bảo rằng chiều rộng ít nhất là 400px, tham số thứ hai trong add_image_size () từ Bước 3.

Điền vào các giá trị cho các trường tùy chỉnh của bạn.

Đó là nó! Truy cập trang lưu trữ của CPT của bạn (Ví dụ: https: //genesis-sample.test/faculty/) để xem các mục xuất hiện trong 2 cột với mỗi mục hiển thị hình ảnh và giá trị trường tùy chỉnh.