這是一個自定義的Wordpress頁面,但我認爲應該使用基本的數組原則。我還沒有用過複雜的數組,因此有點迷路,試驗和錯誤還沒有奏效。將一個數組添加到同一個循環中的另一個數組
我有一個帖子的數據庫,每個帖子都有'shop'和'expired'的meta_key。 'expired'是一個日期(YYYY-MM-DD),用於告訴訪問者郵件的內容何時到期,並且此密鑰是我正在嘗試使用的。
如果郵政的「過期」日期是今天之前,他們都表示「優惠已過期」
如果「到期」日期是在將來,他們顯示(這個腳本「要約在X天后到期」不在下面顯示,不需要)
帖子按其「過期」日期,ASC順序列出。問題是,當一篇文章過期時,我想讓這篇文章在最後顯示,而不是留在最前面。什麼我目前看到
例子:
Post 1 | Expired 3 days ago
Post 2 | Expired 1 day ago
Post 3 | Expires in 2 days
Post 4 | Expires in 6 days
而且想什麼,我看到(注意郵X順序):
Post 3 | Expires in 2 days
Post 4 | Expires in 6 days
Post 2 | Expired 1 day ago
Post 1 | Expired 3 days ago
這是我已經嘗試我的陣列碼合併這兩個
$postid = get_the_ID();
$meta1 = get_post_meta($postid, 'shop', true);
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$today = date('Y-m-d', time());
$args = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'shop',
'value' => $meta1
)
),
'paged' => $paged,
'posts_per_page' => '5',
'meta_key' => 'expired',
'meta_value' => $today,
'meta_compare' => '>',
'orderby' => 'meta_value',
'order' => 'ASC'
);
$args2 = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'shop',
'value' => $meta1
)
),
'meta_key' => 'expired',
'meta_value' => $today,
'meta_compare' => '<',
'orderby' => 'meta_value',
'order' => 'DESC'
);
$final = $args + $args2;
$query = new WP_Query($final);
while ($query->have_posts()) : $query->the_post(); ?>
HTML FOR DISPLAYING POST
endwhile;
目前它似乎沒有采取任何「$ args2」的通知,只顯示$ args
我確定我的想法是正確的,需要創建兩個數組並使用「+」而不是array_merge()將它們連接起來,但這是我無法再深入的地方。
請問有人請好嗎?謝謝!
[array_merge](http://www.php.net/manual/en/function.array-merge.php)有什麼問題?我沒有想出任何使用'+'操作符合併到數組中?你能提供一些關於這方面的信息嗎? –
我在http://php.net/manual/en/function.array-merge.php使用「+」運算符的示例3的提示,如果我使用array_merge(),那麼「args2」會覆蓋「args」因爲他們共享密鑰名稱。 我的目標拆分查詢的結果: (1),具有後日期>今日(主動) (2)其他有側柱日期<今日(過期) 然後,我想顯示符合條件的一面(1)的帖子,然後在尊重分頁(post_per_page => 5)的同時在其下方顯示(2)的帖子。 –
你可以用var_dump格式分享你想要的數組嗎?無論如何,這個信息是有用的:) –