Получить все метаданные для заданного типа сообщений

Я использую плагин, который позволяет мне добавлять профили пользователей в качестве настраиваемого типа сообщений с несколькими настраиваемыми полями, которые используются для конкретной информации. Затем эти сообщения выводятся через короткий код на соответствующей странице, при этом плагин заботится о выдаче соответствующих данных.

Кроме того, Ive создал новый шаблон страницы для страницы, на которой будет выводиться эта информация. Мне нужно вывести из этого шаблона страницы – все «местоположения» введены в соответствующее поле при создании профиля каждого человека.

Я знаю, что эта информация хранится в wp_postmeta, но не была в состоянии работать, если WP предлагает метод сделать это изначально / или как это сделать.

Я до сих пор получил следующий код:

//get your custom posts ids as an array $posts = get_posts(array( 'post_type' => 'team-member', 'post_status' => 'publish', 'posts_per_page' => -1, 'fields' => 'ids' ) ); //loop over each post foreach($posts as $p){ //get the meta you need from each post $locations = get_post_meta($p,"_location",true); } 

Но, похоже, это только показывает поле местоположения для первого показанного профиля.

Любые идеи, в которых я ошибаюсь и / или что мне нужно сделать, чтобы получить записанные места? Идеально как уникальный список (например, не повторяющиеся местоположения).

Solutions Collecting From Web of "Получить все метаданные для заданного типа сообщений"

Ваш звонок должен содержать идентификатор:

 get_post_meta($p->ID,"_location",true); 

А что такое $locations ?
Если массив, он должен быть $locations[] = Если строка, она должна быть $locations .=

Если вам нужны только уникальные местоположения, вы можете сделать это:

 $locations = array(); foreach($posts as $p){ $location = get_post_meta($p->ID,"_location",true); if( ! in_array( $location, $locations) ) $locations[] = $location; }