Intereting Posts
Пользовательские поля для обозревателя Листинг подстраниц заголовка и содержимого и стилизация первой итерации по-разному предотвратить такое же название сообщения WordPress Функция, когда создается новый пользовательский тип сообщения, должна что-то делать Использование Grunt и сохранение комментариев к теме Переключение основного сайта в WordPress Multisite Разрешить администратору устанавливать пароль при добавлении нового пользователя в многопользовательский режим Импортирование медиа-среды Настройка галереи изображений / вложений изображений Как изменить автора Постоянная ссылка Показать ошибки в пользовательской форме входа «Подключить» мой личный сайт к wordpress.com Показывать список категорий, даже если у них нет сообщений Как я могу это сделать? Как сделать настройки «Страницы в блогах не более» не влияют на пользовательские запросы Как отображать содержимое из внешнего db с соответствующими URL-адресами

Get_the_term_list необъяснимо добавляет значения в foreach

Я пытаюсь получить три значения из всех моих пользовательских сообщений, чтобы заполнить карту Google теми местами, где я был. Все идет неплохо, за исключением проблемы, с get_the_term_list я сталкиваюсь с get_the_term_list . По какой-то причине он добавляет число «1» перед каждым правильно возвращенным значением.

Например, мой нижеприведенный код выведет для «name» следующее:

 Key: name, Value: 1 <a rel="tag" href="http://localhost:8888/mntn/mountain/grossglockner">Grossglockner</a> <br> 

Код проблемы:

 <?php //get custom posts ids as an array $loop = get_posts(array( 'post_type' => 'trips', 'post_status' => 'publish', 'posts_per_page' => -1, 'fields' => 'ids' ) ); //loop through each post foreach($loop as $p){ //get the meta and taxonomy data $name = get_the_term_list($p, "mountains",true); $wtr_longitud = get_post_meta($p,"wtr_longitude",true); $wtr_latitud = get_post_meta($p,"wtr_latitude",true); //Add to Array $map_array[] = array ("name" => $name, "latitude" => $wtr_latitud, "longitude" => $wtr_longitud); } //Print array foreach($map_array as $y) { foreach( $y as $key => $value){ echo "Key: $key, Value: $value <br />"; } } ?> 

Проблема заключается в функции get_the_term_list (), которая определяется следующими аргументами:

 get_the_term_list( $id = 0, $taxonomy, $before = '', $sep = '', $after = '' ) 

Вы определяете аргумент $before как true, который PHP печатает как 1 , поэтому он печатает 1 перед списком. Вы должны либо полностью удалить аргумент:

 get_the_term_list( $p, 'mountains' ); 

или заменить его на строку:

 get_the_term_list( $p, 'mountains', '<ul><li>', '</li><li>', '</li></ul>' );