0
我有下面的代碼,它不工作,因爲數組沒有按預期響應。我正在WordPress metabox上創建類別選擇,並將其作爲序列化數據存儲在數據庫中,但當使用tax_query
來獲取選定類別時,數組在terms
字段中將分類失敗。檢查下面的代碼:不在WordPress'tax_query'中分隔類別標識的數組
$selected_categories = get_post_meta($post->ID, $prefix . 'services_category', true);
if ($selected_categories != '') {
$categories = unserialize(get_post_custom($post->ID)[$prefix . 'services_category'][0]);
}
$cat_query = '';
$cat_query = (!empty($categories)) ? implode(',', $categories) : '';
if ($cat_query != '') {
$tax_query = array(
array(
'taxonomy' => 'services_cat',
'field' => 'id',
'terms' => array($cat_query),
),
);
} else { $tax_query = null; }
$services_paged = is_front_page() ? get_query_var('page') : get_query_var('paged');
query_posts(array(
'post_type' => 'mt-services',
'posts_per_page' => $services,
'paged' => $services_paged,
'tax_query' => $tax_query
));
這裏是我的問題在於:我想回波metabox選定類別但不幸的是,他們都贊同爲一體的項目。
'terms' => array($cat_query)
這裏的結果:
print_r(array($cat_query)
給我
Array ([0] => 73,72)
,而不是
Array ([0] => 73, [1] => 72)
詳細解釋
個$categories
值是73和72
使用破滅功能,我們得到$cat_query which
是(73,72)
。
因此,array($cat_query)
將是array(73,72)
,其在打印時應該是:
Array ([0] => 73, [1] => 72)
但是相反,$ cat_query值作爲其最終被打印出來作爲一個單元:
Array ([0] => 73,72)
這是錯誤的
你是正確的,但$類是已序列化的數據和它的值是73和72我已經編輯了問題。好心檢查。 – Peter
我不知道你到底想要什麼,但我假設你想要將內爆數組轉換回來。使用implode函數,它將不同的數組值作爲一個字符串返回。當你使用'array($ cat_query)'時,它只會在數組中插入一個元素。如果你想再次將它們分開使用:'explode(',',$ cat_query)' – Manu