簡體   English   中英

我如何使用類別ID獲取Wordpress帖子?

[英]How i can get wordpress post using category id?

我在使用query_posts的wordpress中遇到問題。

這是我的代碼:

$args = array('category__in' => array(9),'post_type'=>'banner-slider','post_status'=>'publish');
query_posts( $args );
while ( have_posts() ) : the_post();
the_title();
endwhile;

query_post返回以下查詢:

SELECT SQL_CALC_FOUND_ROWS  bib_posts.* FROM bib_posts  WHERE 1=1  AND 0 = 1 AND bib_posts.post_type = 'banner-slider' AND ((bib_posts.post_status = 'publish')) GROUP BY bib_posts.ID ORDER BY bib_posts.post_date DESC LIMIT 0, 10

在上面的查詢中,我得到0 = 1,這是錯誤的。 但是當我從查詢帖子中刪除category__in時,我的查詢工作正常。

請建議我哪里錯了。

query_posts並不意味着要由插件或主題使用,更具體地說,是抄本說:

插件或主題不打算使用此功能。 如后面所述,有更好的,性能更高的選項可以更改主查詢。 query_posts()是通過將頁面的主查詢替換為新的查詢實例來修改頁面的主查詢的過於簡單和有問題的方式。 它效率低下(重新運行SQL查詢),並且在某些情況下(特別是在處理帖子分頁時,通常會完全失敗)。 為此,任何現代WP代碼都應使用更可靠的方法,例如使用pre_get_posts掛鈎。

引用自: http : //codex.wordpress.org/Function_Reference/query_posts

query_posts

WordPress Codex建議使用WP_Queryget_posts() 在您的情況下,我認為get_posts()應該足夠了,因此本示例將使用它。 下面的示例實際上來自WordPress代碼庫,對您的categorypost_typepost_status進行了一些修改:

<?php
$args = array( 'category' => 9, 'post_type' => 'banner-slider', 'post_status' => 'publish' );

$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
    <li>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
<?php
endforeach; 
wp_reset_postdata();
?>

法典: http : //codex.wordpress.org/Template_Tags/get_posts

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM