Hành động vòng lặp Genesis

Khi tùy chỉnh Genesis, điều cần thiết là phải hiểu vòng lặp mặc định được tạo thành. Điều này sẽ giúp bạn dễ dàng di chuyển mọi thứ xung quanh chỉ với một vài dòng mã.

Đây là đoạn mã mà tôi đã sử dụng để in ra, bên cạnh máy tính của tôi khi tôi còn là người mới bắt đầu:genesis/lib/structure/post.php

add_action( 'genesis_entry_header', 'genesis_do_post_format_image', 4 );
add_action( 'genesis_entry_header', 'genesis_entry_header_markup_open', 5 );
add_action( 'genesis_entry_header', 'genesis_entry_header_markup_close', 15 );
add_action( 'genesis_entry_header', 'genesis_do_post_title' );
add_action( 'genesis_entry_header', 'genesis_post_info', 12 );

add_action( 'genesis_entry_content', 'genesis_do_post_image', 8 );
add_action( 'genesis_entry_content', 'genesis_do_post_content' );
add_action( 'genesis_entry_content', 'genesis_do_post_content_nav', 12 );
add_action( 'genesis_entry_content', 'genesis_do_post_permalink', 14 );

add_action( 'genesis_entry_footer', 'genesis_entry_footer_markup_open', 5 );
add_action( 'genesis_entry_footer', 'genesis_entry_footer_markup_close', 15 );
add_action( 'genesis_entry_footer', 'genesis_post_meta' );

add_action( 'genesis_after_entry', 'genesis_do_author_box_single', 8 );
add_action( 'genesis_after_entry', 'genesis_adjacent_entry_nav' );
add_action( 'genesis_after_entry', 'genesis_get_comments_template' );

Một ví dụ cơ bản về cách thông tin này có thể được sử dụng:

Bạn muốn di chuyển thông tin bài đăng từ đầu trang mục nhập và vào chân trang mục nhập? Chỉ cần thêm cái này vào functions.php của chủ đề con của bạn :

remove_action( 'genesis_entry_header', 'genesis_post_info', 12 );
add_action( 'genesis_entry_footer', 'genesis_post_info' );

Và để hoàn thiện, đây là hàm lặp thực tế:

/**
 * Standard loop, meant to be executed without modification in most circumstances where content needs to be displayed.
 *
 * It outputs basic wrapping HTML, but uses hooks to do most of its content output like title, content, post information
 * and comments.
 *
 * The action hooks called are:
 *
 *  - `genesis_before_entry`
 *  - `genesis_entry_header`
 *  - `genesis_before_entry_content`
 *  - `genesis_entry_content`
 *  - `genesis_after_entry_content`
 *  - `genesis_entry_footer`
 *  - `genesis_after_endwhile`
 *  - `genesis_loop_else` (only if no posts were found)
 *
 * @since 1.1.0
 *
 * @return null Return early after legacy loop if not supporting HTML5.
 */
function genesis_standard_loop() {

    // Use old loop hook structure if not supporting HTML5.
    if ( ! genesis_html5() ) {
        genesis_legacy_loop();
        return;
    }

    if ( have_posts() ) :

        do_action( 'genesis_before_while' );
        while ( have_posts() ) : the_post();

            do_action( 'genesis_before_entry' );

            printf( '<article %s>', genesis_attr( 'entry' ) );

                do_action( 'genesis_entry_header' );

                do_action( 'genesis_before_entry_content' );

                printf( '<div %s>', genesis_attr( 'entry-content' ) );
                do_action( 'genesis_entry_content' );
                echo '</div>';

                do_action( 'genesis_after_entry_content' );

                do_action( 'genesis_entry_footer' );

            echo '</article>';

            do_action( 'genesis_after_entry' );

        endwhile; // End of one post.
        do_action( 'genesis_after_endwhile' );

    else : // If no posts exist.
        do_action( 'genesis_loop_else' );
    endif; // End loop.

}

Nguồn: genesis/lib/structure/loops.php