2015-08-08 61 views
0

如何顯示保存的複選框值或者是否未保存在wordpress中;如何顯示保存的get_post_meta值複選框

例如:

<?php 
if($field_name_21=="bathrooms") echo 'Yes have bathrooms'; 
else { echo 'No have bathrooms; } 
if($field_name_21=="wc") echo 'Yes have wc'; 
else { echo 'No have wc; } 
?> 
+0

你能更加描述你的問題嗎? –

+0

嘗試echo'$ field_name_21'中的值以顯示已存儲的值(假設您將某個變量填充到該變量中)。這樣,你就會知道在你的'if'語句中使用什麼字符串。此外,您在「沒有浴室」後錯過了結束報價,這可能是您的問題 – Hobo

+0

我該怎麼辦? – Paris

回答

0

我很抱歉,我還是不太清楚你究竟是如何有存儲你的數據。我可以看到三種可能性;如果這些都不適用於您的情況,請讓我知道我出錯的地方。

選項1

你必須每個屬性的一個meta值(例如,「WC」被存儲在與field_name_1一個meta_value,「浴室」存儲在與field_name_2一個meta_value,依此類推)。

<?php 
$field_descriptions = array(
    'field_name_1' => 'wc', 
    'field_name_2' => 'bathrooms', 
    'field_name_3' => 'bedrooms' 
); 

foreach ($field_descriptions as $field_name => $description) { 
    $value = get_post_meta($post->ID, $field_name, true); 

    if ($value) { 
     echo 'Yes have ' . $description; 
    } 
    else { 
     echo 'No have ' . $description; 
    } 
} 
?> 

選項2

你有一個meta值(如稱爲field_name),它可以有幾個值存儲在它,用分隔符(如|)。例如,存儲的值可能看起來像wc|bedrooms。這似乎不太可能,因爲你的問題提到了一個保存的複選框,但根據你的評論,它可能是你在做什麼。

<?php 
$possible_values = array('wc', 'bathrooms', 'bedrooms'); 
$stored_values = explode('|', get_post_meta($post->ID, 'field_name', true)); 

foreach ($possible_values as $possible_value) { 
    if (in_array($possible_value, $stored_values)) { 
     echo 'Yes have ' . $possible_value; 
    } 
    else { 
     echo 'No have ' . $possible_value; 
    } 
} 
?> 

選項3

你有一個meta值(如稱爲field_name),它可以有 「WC」 或 「浴室」,或 「臥室」。這似乎不太可能,但爲了完整起見,我將它包括在內。

<?php 
$possible_values = array('wc', 'bathrooms', 'bedrooms'); 
$stored_value = get_post_meta($post->ID, 'field_name', true); 

foreach ($possible_values as $possible_value) { 
    if ($stored_value == $possible_value) { 
     echo 'Yes have ' . $possible_value; 
    } 
    else { 
     echo 'No have ' . $possible_value; 
    } 
} 
?> 
+0

非常感謝你的努力! 我可以說我們非常接近,我選擇了選項2,這在邏輯上使我們在**分裂**上跳動**警告:split():REG_EMPTY'我給你一張他的wordpress數據庫的圖片,它保存了數據: [link](http://oi58.tinypic.com/2q38xlv.jpg) – Paris

+0

啊 - 對不起,我的意思是使用'explode()',而不是'split()'('split'需要一個正則表達式)。我已經更新了我的答案。由於某種原因無法看到圖像 – Hobo

+0

只需再次檢查圖像,我現在就可以看到它。唯一可能改變的是你可能需要在'explode('|''調用中有一個空格,或者你可以使用正則表達式(如果你對它們很熟悉)和['preg_split'](http ://php.net/manual/en/function.preg-split.php)函數而不是'explode()'。 – Hobo