WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

get_post_meta(); returns Array / Произвольные поля (Решено)

есть плагин "Advanced Custom Fields"(произвольные поля) и есть код

<?php $lang_files = get_post_meta($post->ID, 'lang_files', true); echo $lang_files; ?>
<?php $coloring_files = get_post_meta($post->ID, 'coloring_files', true); echo  $coloring_files; ?>

И в первой и во второй строке все работает и выдает в зависимости от заполнения

1 Color
2 English

короче все как заполнено, но стоит обновить (просто нажать кнопку и не вносить никаких изменений) или дополнить пост и нажать обновить выдает "Array"

Для наглядности заполнил произвольное поле (вбил данные если конкретно, то поставил 2 языка) и проверил через print_r:

<?php $lang_files = get_post_meta($post->ID, 'lang_files', true);
 echo print_r( $lang_files); 
?>

Выдало:
Array ( [0] => ENG [1] => Wordless ) 1

Подскажите, если знаете, как с этим бороться?

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

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

  • если зачем париться используй ... Скажу так что инфа пригодится на будущее чтоб потом не париться , если проблема повторится

  • не подойдет так же (так как в массиве несколько значений):

    <?php 
    $lang_files = get_post_meta($post->ID, 'lang_files', true);
    if ( is_array( $lang_files ) ) {
      echo $lang_files[0];
    } else {
      echo $lang_files;
    }
    ?>
kolshix 11 месяцев назад

Сам написал, подумал, не решил, дали ответ, еще подумал, а почему бы не вывести весь массив:

<?php 
$lang_files = get_post_meta($post->ID, 'lang_files', true);
if ( is_array( $lang_files ) ) { 
	foreach($lang_files as $value) { echo $value . ', '; }
} else { 
	echo $lang_files; 
}
?>

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

1
kolshix104 11 месяцев назад

Нет ответов на этот вопрос.

На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.