Giữ bài đăng nội dung nổi bật trong trang chủ với thứ tự ban đầu


17

Tôi đang tìm cách giữ bài đăng nổi bật trong trang chủ blog của mình mà không loại trừ nó khỏi bài đăng truy vấn. Blog của tôi sử dụng chủ đề Twenty Fourteen. Tôi tìm thấy giải pháp này.

Mở Feature-content.php từ thư mục inc của chủ đề của bạn và tìm mã sau đây (dòng 269 trong trường hợp của chúng tôi).

$query->set( 'post__not_in', $featured );

Đơn giản chỉ cần nhận xét dòng này, bằng cách thêm hai dấu gạch chéo phía trước nó, để có được điều này:

// $query->set( 'post__not_in', $featured );

Nhưng tệp không có dòng đó và chủ đề con không thể ghi đè thư mục inc của chủ đề gốc.

Tôi đã tìm thấy một giải pháp khác và nó hoạt động, nhưng, vấn đề là mã này hiển thị bài đăng nội dung nổi bật không theo thứ tự ban đầu của họ. Khi bài đăng nội dung cũ - Tôi đang sử dụng bài đăng dính để làm cho bài đăng nổi bật - trở nên nổi bật, bài đăng nội dung nổi bật sẽ trở thành đơn hàng đầu tiên sau đó là bài đăng khác.

Tôi đã thử sử dụng thẻ có điều kiện như thế này.

function show_featured_content_on_home() {
if ( !is_home() ) {
remove_action( 'pre_get_posts', array( 'Featured_Content', 'pre_get_posts' ) );
    }
}
add_action( 'init', 'show_featured_content_on_home', 31 );

Trang thứ hai và cứ thế ổn - hiển thị các bài đăng nổi bật theo thứ tự - nhưng trang chủ vẫn có vấn đề.

Bất kỳ đề xuất?


Tôi nghĩ rằng tôi có câu trả lời. Để làm cho nó hoạt động, bạn phải sử dụng thẻ 'đặc trưng' hơn là sử dụng bài đăng dính để tạo nội dung nổi bật. Vì vậy, giải pháp là chính xác và tôi đã hiểu sai và đưa ra câu hỏi sai. Thẻ có điều kiện, bạn có thể loại bỏ nó vì mã chức năng không có thẻ điều kiện.
Naziman Azlye

1
Tôi biết điều này là khá muộn nhưng bạn có phiền khi thêm nhận xét ở trên làm câu trả lời không? Câu hỏi này có khá nhiều câu trả lời và có một câu trả lời thích hợp làm cho nó rõ ràng hơn. Cảm ơn trước!
kraftner

Câu trả lời:


1

Tôi nghĩ bạn có thể sử dụng WPQuery

    $the_query = new WP_Query( array( 'post__in' => get_option( 'sticky_posts' )) ); ?>

    <?php if ( $the_query->have_posts() ) : ?>

        <!-- pagination here -->

        <!-- the loop -->
        <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>   
<h2><?php the_title(); ?></h2>
        <?php endwhile; ?>
        <!-- end of the loop -->

        <!-- pagination here -->

        <?php wp_reset_postdata(); ?>


    <?php endif; ?>

và để đặt hàng bài đăng của bạn, bạn có thể sử dụng order và orderby xem tài liệu tham khảo https://codex.wordpress.org/Class_Reference/WP_Query

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.