Cuplikan berikut ini dari widget bilah samping yang mencantumkan "kiriman terbaru". Karena ini ada di halaman beranda dan saya menampilkan posting lengket terbaru saya dengan jelas pada halaman itu, saya ingin melewatkan lengket di loop ini. Namun, post_not_in=sticky_posts
tidak memiliki efek.
<?php
$the_query = new WP_Query("showposts=$number&offset=1&order=ASC&post_not_in=sticky_posts");
while ($the_query->have_posts()) : $the_query->the_post();
$do_not_duplicate = $post->ID; ?>
Saya mengambil @ tnorthcutt's jawaban dari WordPress 'Codex pada query_posts()
tentang Parameter Sticky dan membuat contoh tandalone Anda dapat memasukkan test.php
ke root situs web Anda dan melihatnya dijalankan dengan menavigasi ke URL seperti ini, dengan domain Anda diganti:
Beberapa catatan pada kode; Saya harus menggunakan array yang setara dengan string kueri yang Anda berikan ke WP_Query()
karena argumen post__no_in
tidak dapat diteruskan sebagai string yang dibatasi koma (tidak yakin mengapa, mungkin sebuah pengawasan ?).
Saya juga ingin memastikan Anda tahu bahwa memulai dengan offset=1
(bukan offset=0
) berarti Anda akan mengecualikan posting pertama yang kalau tidak akan dikembalikan oleh permintaan. Tentu saja Anda masih akan mendapatkan jumlah posting yang ditentukan oleh $number
dengan asumsi Anda memiliki banyak posting yang berlaku +1. Jadi, inilah kodenya:
<?php
header('Content-Type:text/plain');
include "wp-load.php";
$number = 5;
$the_query = new WP_Query(array(
'showposts' => $number,
'offset' => 1, // This will cause the query to skip over first post
'order' => 'ASC',
'post__not_in' => get_option("sticky_posts"),
));
while ($the_query->have_posts()) : $the_query->the_post();
the_title();
endwhile;
Jika Anda ingin mengecualikan semua posting tempel dari kueri, gunakan
query_posts(array("post__not_in" =>get_option("sticky_posts")));
(dari kodeks )
Sepertinya itu hanya akan bekerja pada 3.0 atau lebih besar, meskipun: http://wordpress.org/support/topic/excluding-sticky-posts-using-query_posts
Sunting: sebagai tanggapan atas komentar Anda di bawah, coba ini (saya tidak yakin ini akan berhasil, tapi semoga ini akan membantu Anda memulai):
<?php
$args=array(
'showposts'=>'$number',
'offset'=>'1',
'order'=>'ASC',
'post__not_in'=>get_option("sticky_posts")
);
$the_query = new WP_Query($args);
while ($the_query->have_posts()) : $the_query->the_post();
$do_not_duplicate = $post->ID; ?>