2014-11-13 9 views
0

Я новичок в PHP и ценю любую помощь. Я пытаюсь понять, почему $ skill не работает на get_post_meta в Wordpress.

Я пытаюсь вычислить (суммировать) все числа мета полей в каждом метаполе = «ecpt_editorial», «ecpt_branding» и т. Д. (Т.е. = «ecpt_editoral» имеет 3 точки в одном столбце + 4 точки в другой .) Я пытаюсь вычислить их всех без необходимости создавать $ для каждого из них (их слишком много).

Мои ошибки:
Предупреждение: Недопустимый тип смещения в IsSet или порожних в
Фатальная ошибка: неподдерживаемых типов операндов в

<?php $args = array('numberposts' => -1, 'post_type' => 'post',); 
     $points = get_posts($args); 
     $total = 0; 

     $skill = array ('ecpt_editorial','ecpt_branding', 'ecpt_packaging'); 

     foreach($points as $point) { 
      $single = get_post_meta($point->ID, $skill, false); 
      $total += $single;} 

     echo $total; 
     ++$total; 
     ?> 

ответ

0

Вы не можете передать массив в поле ключа $. Это, скорее всего, это то, что он ищет:

$args = array('numberposts' => -1, 'post_type' => 'post',); 
    $points = get_posts($args); 
    $total = 0; 

    $skill = array ('ecpt_editorial','ecpt_branding', 'ecpt_packaging'); 

    foreach($points as $point) { 
     foreach($skill as $key){ 
      $single = get_post_meta($point->ID, $key, false); 
      var_dump($single); 
      echo '<br>'; 
      ${$key} += (int) $single; 
     } 
    } 

    foreach($skill as $key){ 
     echo $key.'='.${$key}; // there are now 3 variables with count values set, $ecpt_editorial , $ecpt_branding, $ecpt_packaging 
    } 

Предполагаете, что вы не хотите экономить $ сингл для использования?

+0

Привет, Дэвид! Мне не нужен $ single, но мне нужно суммировать все $ single, это имеет смысл? Я получаю сообщение об ошибке: Неподдерживаемые типы операндов в строке $ total + = $ single; – Bibiana

+0

wierd .... вы уверены, что у вас есть номера во всех этих полях? Я кое-что обновил, чтобы убедиться! – David

+0

Нет, на самом деле многие поля пустые. По-прежнему получается такая же ошибка. Позвольте мне попытаться объяснить снова: я заполняю каждый «ecpt_x» вариант метаболизма в каждом сообщении. Если это «0», я ничего не заполняю. Я хотел бы суммировать все значения во всех метакоксах ecpt_x. Например: ecpt_editorial = 2 + 2 + 0 = 4 и ecpt_branding = 0 + 2 + 5 = 7. Извините за беспорядочное объяснение. – Bibiana