簡體   English   中英

如何根據Wordpress中的類別優先排列帖子的順序?

[英]How do I prioritize order of posts based on category in wordpress?

我正在使用獲取最新帖子列表

$recent_post = new WP_Query("cat='2,3,4,5,6,8,7,9,10,11,12'&posts_per_page&paged=".get_query_var('paged'));

其中一些帖子屬於多個類別,我需要優先考慮屬於類別ID 8那些帖子的優先順序,這些帖子可以單獨使用,也可以與其他類別並列。

我想到了運行兩個單獨的查詢並合並它們的結果,但是有更好的方法嗎?

使用posts_orderby鈎子和SQL CASE語句。

嘗試類似以下的方法。 orderby子句的case語句說明,如果它是8類,則將其分配為1,否則將其分配為2。然后還添加要排序的其他任何列(在我的示例中為post_title列)。

function my_posts_orderby($orderby_statement) {
    global $wpdb;
    $orderby_statement = "ORDER BY CASE WHEN $wpdb->term_taxonomy.term_id = 8 THEN 1 ASC, ELSE 2 ASC END, $wpdb->posts.post_title ASC";

    return $orderby_statement;
}
add_filter('posts_orderby', 'my_posts_orderby');

暫無
暫無

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

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