Simpan posting konten unggulan di beranda dengan pesanan asli

17

Saya mencari cara menjaga posting yang ditampilkan di beranda blog saya tanpa mengecualikannya dari pos permintaan. Blog saya menggunakan tema Twenty Fourteen. Saya menemukan solusi ini.

Buka unggulan-content.php dari folder inc tema Anda, dan cari kode berikut (baris 269 dalam kasus kami).

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

Cukup komentari baris ini, dengan menambahkan dua garis miring di depannya, untuk mendapatkan ini:

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

Tetapi file tidak memiliki garis itu dan tema anak tidak dapat mengesampingkan folder inc tema induk.

Saya telah menemukan solusi lain dan berfungsi, tetapi, masalahnya adalah kode ini menunjukkan posting konten unggulan bukan dalam urutan aslinya. Ketika posting konten lama - Saya menggunakan sticky post untuk membuat postingan unggulan - menjadi unggulan, posting konten unggulan akan menjadi urutan pertama dari pada posting lainnya.

Saya telah mencoba menggunakan tag kondisional seperti ini.

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 );

Halaman kedua dan seterusnya oke - tampilkan tulisan yang ditampilkan secara berurutan - tetapi beranda masih memiliki masalah.

Ada saran?

Naziman Azlye
sumber
Saya pikir saya punya jawabannya. Untuk membuatnya berfungsi, Anda harus menggunakan tag 'fitur' daripada menggunakan posting tempel untuk membuat konten unggulan. Jadi solusinya benar dan saya memiliki pemahaman yang salah dan memberikan pertanyaan yang salah. Tag bersyarat, Anda dapat menghapusnya karena kode berfungsi tanpa tag bersyarat.
Naziman Azlye
1
Saya tahu ini agak terlambat, tetapi maukah Anda menambahkan komentar di atas sebagai jawaban? Pertanyaan ini memiliki beberapa peningkatan dan memiliki jawaban yang tepat membuatnya lebih jelas. Terima kasih sebelumnya!
kraftner

Jawaban:

1

Saya pikir Anda dapat menggunakan 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; ?>

dan untuk memesan posting Anda, Anda dapat menggunakan pesanan dan orderby lihat referensi https://codex.wordpress.org/Class_Reference/WP_Query

Taj Khan
sumber