it-swarm.asia

اللاعبين المشاركات الملصقة من الحلقة ومن WP_Query () في WordPress؟

المقتطف التالي مأخوذ من عنصر واجهة الشريط الجانبي الذي يسرد "المشاركات الحديثة". نظرًا لوجودها على الصفحة الرئيسية وأبرز آخر مشاركة لزجة لها بشكل بارز على تلك الصفحة ، أريد أن أتخطى اللزجة الموجودة في هذه الحلقة. ومع ذلك ، فإن post_not_in=sticky_posts ليس له أي تأثير.

<?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

أخذت @ tnorthcutt إجابة من وورد "مخطوطة على query_posts() حول معلمات مثبت وقمت بإنشاء مثال tandalone يمكنك إسقاطه كـ test.php في جذر موقع الويب الخاص بك ومشاهدته يتم تشغيله من خلال الانتقال إلى عنوان URL مثل هذا ، مع استبدال نطاقك:

http://example.com/test.php

بعض الملاحظات على الكود ؛ اضطررت إلى استخدام صفيف مكافئ لسلسلة الاستعلام لقد مررت إلى WP_Query() لأنه لا يمكن تمرير وسيطة post__no_in كسلسلة محددة بفواصل (لست متأكدًا من السبب ، ربما تكون رقابة ؟).

وأردت أيضًا التأكد من أنك تعرف أن البدء برمز offset=1 (بدلاً من offset=0) يعني أنك ستستبعد المشاركة الأولى التي سيتم إرجاعها بواسطة الاستعلام. بالطبع ستظل تحصل على عدد المشاركات المحددة بواسطة $number على افتراض أن لديك العديد من المشاركات القابلة للتطبيق +1. لذلك إليك الرمز:

<?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

إذا كنت ترغب في استبعاد جميع المشاركات اللزجة من استعلام ، فاستخدم

query_posts(array("post__not_in" =>get_option("sticky_posts")));

(من المخطوطة )

يبدو أن هذا لن يعمل إلا على الإصدار 3.0 أو أحدث ، على الرغم من: http://wordpress.org/support/topic/excluding-sticky-posts-using-query_posts

تحرير: استجابة لتعليقك أدناه ، جرب هذا (لست متأكدًا من أن هذا سيعمل ، لكن آمل أن يبدأ ذلك):

<?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