Я новичок в 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;
?>
Вы не можете передать массив в поле $ key. Это то, что вы ищете:
$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
}
Предполагается, что вы не хотите экономить $ single для использования?
Других решений пока нет …