Как получить значение из произвольного поля?

👍 Научим создавать сайты на WordPress бесплатно за 19 уроков. Подробнее →

Наваял такую вот выборку, но со временем появилась куча других произвольных полей которые нужно указывать.

ID, $key, TRUE);
if($themeta != '') 
{echo '<ul><li>10 кг = '; echo $themeta; echo '</li>';
 echo '<li>20 кг = '; echo ($themeta-100)*2; echo '</li>';
 echo '<li>от 30 кг = '; echo ($themeta-200); echo '</li></ul>';}

$key = 'p2'; $themeta = get_post_meta($post->ID, $key, TRUE);
if($themeta != '') 
{echo '<ul><li>10 шт = '; echo ($themeta-($themeta/100*4))*10; echo '</li>';
 echo '<li>50 шт = '; echo ($themeta-($themeta/100*5))*50; echo '</li>';
 echo '<li>100 шт = '; echo ($themeta-($themeta/100*15))*100; echo '</li>';
 echo '<li>500 шт = '; echo ($themeta-($themeta/100*20))*500; echo '</li></ul>';}
 ?>

Как получить:

if exist custom_field_name_AAA { custom_field_name_AAA_value =$AAA1};
if exist custom_field_name_BBB { custom_field_name_BBB_value = $AAA1};

и тп.

В общем как доставать значение произвольного поля, если оно существует, если не существует искать следующее указанное в коде??

Создай свой первый сайт на WordPress

emmell
Оцените автора
Добавить комментарий

  1. zetrider

    Не совсем понятно чего вы хотите… вообще получить произвольное поле и поставить в условие можно так:

    <?php
    $myfields1 = get_post_meta(get_the_ID(), 'myfields', true);
    $myfields2 = get_post_meta(get_the_ID(), 'myfields', true);
    $myfields3 = get_post_meta(get_the_ID(), 'myfields', true);
    
    if ($myfields1) { 
    echo "Поле 1 есть"; 
    }
    elseif ($myfields2) { 
    echo "Поле 2 есть"; 
    }
    elseif ($myfields3) { 
    echo "Поле 3 есть"; 
    }
    else {
    echo "Полей нет";
    }
    ?>
    Ответить
  2. emmell автор

    Я хочу на русском так:

    <пхп какие произвольные_поля есть в этом посте; если есть имя_поля1 { $A = значение_из_поля1; }; конецесли; если есть имя_поля2 ( $A = значение_из_поля2; }; конецесли;

    Ответить
    1. emmell автор

      собстно в кодексе нашел кусок решения, последнюю строчку только под себя подправил.

        $custom_field_keys = get_post_custom_keys();
        foreach ( $custom_field_keys as $key => $value ) {
          $valuet = trim($value);
            if ( '_' == $valuet{0} )
            continue;
          echo $key . " => " . $value . "<br />";}
      Ответить