2014-01-11 47 views
0

在我的WP網站中,我有幾個類別,每個類別都有來自社區的帖子,每個帖子都是酒店的1個地址。WP分類頁面在自定義字段和日期上訂購帖子

在這些類別中,我必須有兩個塊(必須在同一類別中)第一個塊我們命名爲group1,第二個塊是group2。

當點擊分類頁面時,訪問者先看到來自group1的所有帖子,然後直接看到來自group2的帖子。

我已經做:

我採取命名組並放置在值1(第1組)或2(第2組)

在我的分類頁面中的自定義字段我已經把這上面的代碼

<?php while (have posts() ... 

<?php if (is_category('saalbach-hinterglemm')) { $posts = query_posts($query_string. '&orderby=meta_value&meta_key=Groups&order=ASC'); } ?> 

現在愚蠢的事情,一切都正常運行,除了職位的日期順序沒關係,我試過爲了ASC更改爲降序,唯一的變化是,1組是第一位的,或在其他的區別情況Group2,但在兩種情況下始終是f的最舊職位第一個地方(不是最新的......請有人可以幫我解決這個問題嗎?

+0

你有一些代碼,你試過到目前爲止? – andreivictor

+0

是這一個 <?php if(is_category('saalbach-hinterglemm')){$ posts = query_posts($ query_string。'&orderby = meta_value&meta_key = Groups&order = ASC'); }?> – user3185629

回答

0

你可以嘗試添加dateorderby

'&orderby=date,meta_value&meta_key=Groups&order=ASC' 
+0

現在沒有幫助不會改變任何東西 – user3185629

0

的WordPress WP_Query不會爲order參數支持多個值(查詢參數應該是&orderby=meta_value,date&meta_key=Groups&order=ASC,DESC

您可以嘗試使用posts_orderby過濾器(codex link here)。

將這個代碼放到你的functions.php文件:

function enforce_specific_order($orderby) { 
    global $wpdb; 
    return $wpdb->prefix."postmeta.meta_value ASC, ".$wpdb->prefix."posts.post_date DESC"; 
} 

然後修改您的代碼,因爲這:

<?php if (is_category('saalbach-hinterglemm')) { 
    add_filter('posts_orderby', 'enforce_specific_order'); 
    $posts = query_posts($query_string. '&meta_key=Groups'); 
    remove_filter(current_filter(), __FUNCTION__); 
} ?> 
+0

我很抱歉,但我沒有知識的操作系統的PHP,我堅果明白如何impliment此代碼 – user3185629

+0

我寫了所有你需要的代碼,讓我知道如果它有效。 – andreivictor

+0

感謝您的工作謝謝您的謝意andreivictor – user3185629

相關問題