2016-01-20 29 views
0

我正在做一個代碼,抓住一個url部分,取值,然後在列表中設置。

問題是名單

if (in_array($term->term_id, $regions)) { 
    $selected_region = 'selected'; 
} 
else { 
$selected_region = 'not'; 
} 

此代碼的工作,始終未返回。

if ($term->term_id == 2) { 
$selected_region = 'varbut?'; 
} 

這項工作。

$區域是可變的,返回此:

array(2) { [0]=> string(2) "17" [1]=> string(1) "2" } 

問題出在哪裏使用$ term_id?

$term_id用的var_dump返回int(17) int(2)

在其他頁,單頁只有一個長期工作和代碼是這樣的:

<?php 
    $id = get_the_ID(); 
    $postterms = wp_get_post_terms($id, 'destinations'); // get post terms 
    $parentId = $postterms[0]->term_id; // get parent term ID 
    ?> 
    <?php if (!in_array($parentId, $regions)): ?> 

爲什麼沒有對所選功能的工作?整數和字符串值?

這裏是一個足月的get代碼:

$custom_terms = get_terms(array($taxonomies), $args); 
foreach($custom_terms as $term){ 
    if (in_array($term->term_id, $regions)) { 
     $selected_region = 'selected'; 
    } 
    else { 
     $selected_region = 'not'; 
    } 
    if ($term->term_id == 2) { 
     $selected_region = 'varbut?'; 
    } 
    echo $selected_region; 

    var_dump($term->term_id); 

} 

}

+0

你的問題標題說'in_array',但你的代碼說'array_intersect'? –

+0

首先'var_dump($ term_id)'不能返回int(17)int(2)'它是**兩個**變量。 '$ term_id'爲17或'$ term_id'爲2.根據if子句,它是'2'。 –

+0

Var轉儲在foreach上設置,如$ term_id。 – Foxsk8

回答

0

這就像你說的;

$regions : array(2) { [0]=> string(2) "17" [1]=> string(1) "2" } 
$term->term_id : int(2) 

如何將您的$地區轉換爲整數?