Cara Menambahkan Tulisan Sticky di WordPress Custom Post Type Archives

Baru-baru ini salah satu pengguna kami bertanya kepada kami apakah mungkin menambahkan pos lengket ke arsip jenis pos khusus. Secara default, WordPress memiliki fungsi lengket yang tersedia untuk posting, namun tidak untuk jenis posting lainnya. Pada artikel ini kami akan menunjukkan cara menambahkan postingan lengket di arsip tipe custom post WordPress. Sebelum kita melangkah maju, Anda mungkin ingin belajar membuat jenis posting kustom di WordPress.

Menambahkan Tulisan Sticky di Custom Post Types

Hal pertama yang perlu Anda lakukan adalah menginstal dan mengaktifkan plugin Sticky Custom Post Types. Setelah mengaktifkan plugin, masuk ke Pengaturan »Membaca dan gulir ke bagian Sticky Custom Post Types. Selanjutnya, Anda perlu memilih jenis posting kustom yang Anda inginkan Stick Pilihan ini diaktifkan.

Mengaktifkan tempel tempel untuk jenis pos khusus

Sekarang apa yang telah kita lakukan di sini adalah bahwa kita telah menambahkan fitur posting lengket ke jenis posting kustom kita. Sticky posts di custom post types akan ditampilkan di halaman depan seperti postingan sticky biasa.

Masalahnya adalah bahwa secara default WordPress hanya menampilkan tulisan lengket di beranda. Ini tidak menunjukkan tulisan lengket pada halaman arsip.

Menampilkan Tulisan Sticky di Custom Post Type Archives

Mari berasumsi bahwa Anda memiliki jenis posting khusus untuk Ulasan Film dengan posting yang lengket yang diaktifkan menggunakan plugin yang telah kami sebutkan di atas. Sekarang Anda ingin tulisan lengket Anda di jenis ulasan film ditampilkan secara berbeda dan di atas ulasan film biasa yang tidak lengket. Seperti ini:

Menampilkan posting yang lengket pada halaman arsip tipe posting kustom

Untuk mencapai tujuan ini, hal pertama yang Anda butuhkan adalah template arsip untuk jenis posting kustom Anda seperti ini: arsip-post-type.php . Pelajari cara membuat halaman arsip jenis postingan. Misalnya, jika Anda memiliki jenis pos khusus ulasan film maka template halaman arsip anda seharusnya arsip-film-reviews.php . Jika Anda tidak memiliki template, buat satu. Cukup salin isi archive.php di direktori theme anda dan paste ke file baru arsip-your-post-type.php .

Langkah selanjutnya adalah menambahkan kode ini ke dalam tema Anda functions.php mengajukan:

fungsi wpb_cpt_sticky_at_top ($ posts) {
 
     // aplikasikan di arsip saja
     if (is_main_query () && is_post_type_archive ()) {
         global $ wp_query;
 
         $ sticky_posts = get_option ('sticky_posts');
         $ num_posts = count ($ posts);
         $ sticky_offset = 0;
 
         // Temukan tulisan yang lengket
         untuk ($ i = 0; $ i ID, $ sticky_posts)) {
                 $ sticky_post = $ posts [$ i];
 
                 // Lepaskan lengket dari posisi saat ini
                 array_splice ($ posts, $ i, 1);
 
                 // Pindah ke depan, setelah stickies lainnya
                 array_splice ($ posts, $ sticky_offset, 0, array ($ sticky_post));
                 $ sticky_offset ++;
 
                 // Hapus pos dari array tulisan yang lengket
                 $ offset = array_search ($ sticky_post-> ID, $ sticky_posts);
                 tidak diset ($ sticky_posts [$ offset]);
             }
         }
 
         / / Mencari lebih lengket posting jika diperlukan
         jika (kosong ($ sticky_posts)) {
 
             $ stickies = get_posts (array (
                 'post__in' => $ sticky_posts,
                 'post_type' => $ wp_query-> query_vars ['post_type'],
                 'post_status' => 'publikasikan',
                 'nopaging' => benar
             ));
 
             foreach ($ stickies sebagai $ sticky_post) {
                 array_splice ($ posts, $ sticky_offset, 0, array ($ sticky_post));
                 $ sticky_offset ++;
             }
         }
 
     }
 
     kembalikan $ posts;
 }
 
 add_filter ('the_posts', 'wpb_cpt_sticky_at_top');

 // Tambahkan kelas lengket dalam judul artikel ke gaya tulisan lengket secara berbeda

 fungsi cpt_sticky_class ($ classes) {
 jika (is_sticky ()):
 $ classes [] = 'lengket';
 kembali $ kelas;
 berakhir jika;
 kembali $ kelas;
 }
 add_filter ('post_class', 'cpt_sticky_class'); 

Kode di atas akan memindahkan tulisan lengket Anda ke atas, dan jika tema Anda digunakan post_class () fungsinya, maka akan menambah lengket di kelas post.

Anda bisa menata posting lengket Anda dengan menggunakan .lengket kelas di lembar kerja Anda Contoh:

.sticky {
 background-color: #ededed;
 background-image: url ('https://example.com/wp-content/uploads/featured.png');
 background-repeat: no-repeat;
 background-position: kanan atas;
 } 

Styling sticky posts

Kami harap artikel ini membantu Anda menambahkan tulisan lengket di arsip jenis pos khusus. Untuk pertanyaan dan umpan balik silakan tinggalkan komentar di bawah ini.

Sumber: Tareq Hasan