it-swarm-id.com

Tidak termasuk Posting Lengket dari Loop dan dari WP_Query () di WordPress?

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; ?>
1
Scott B

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:

http://example.com/test.php

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;
3
MikeSchinkel

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; ?>
1
Travis Northcutt