Custom field: один key и несколько value при нем

Как вывести все значения (values) одного ключа (key) произвольного поля?

есть ключ mykey, у него несколько значений
пробовала так:

<?php
  $mykey_values = get_post_custom_values('my_key');
  foreach ( $mykey_values as $key => $value ) {
    echo $key . " => " . $value . "<br />"; 
  }
?>

(пример из кодекса), где обещается:
«Returns an array containing all the values of the custom fields with a particular key ($key) of a particular post ($post_id). Returns nothing if no such key exists, or none is entered. »

А в ответ – ошибка:

Warning: Invalid argument supplied for foreach() in /home/siteru/www/site.ru/wp-content/themes/mytheme/column1.php on line 60

А что я не так делаю-то? 🙁

Нашла рабочий код!
Может кому тоже пригодится:

<?php
$cust_fld = get_post_meta($post->ID, "custom_field", false);
if ($cust_fld[0]=="") {}
else{
echo implode("",$cust_fld);}
?>

http://wordpress.org/support/topic/154617?replies=7#post-810406

<?php
  $mykey_values = get_post_custom_values('my_key');
  foreach ( $mykey_values as $key => $value ) {
    echo $key . " => " . $value . "<br />"; 
  }
?>

(пример из кодекса), где обещается:
«Returns an array containing all the values of the custom fields with a particular key ($key) of a particular post ($post_id). Returns nothing if no such key exists, or none is entered. »

А в ответ - ошибка:

Warning: Invalid argument supplied for foreach() in /home/siteru/www/site.ru/wp-content/themes/mytheme/column1.php on line 60

А что я не так делаю-то? 🙁

Это классическая ситуация: отсутствует проверка на не пустой $mykey_values. Стоит добавить перед foreach что типа if (!empty($mykey_values). Впрочем, ворнинг – не фатал. 🙂

В примерах часто намеренно опускают эти проверки, чтобы не загромождать код. А в боевых программах часто про такие проверки забывают, что порой приводит к очень нехорошим последствиям. Вообще-то, хорошая программа более чем наполовину состоит из таких проверок и обработчиков нештатных ситуаций.

отсутствует проверка на не пустой $mykey_values.

Дык у меня там не пусто было – 2 value забила к ключу mykey в тестовом посте – чтобы видеть, когда подбор кода увенчается успехом 🙂

Anonymous
Отправить
Ответ на: