Intereting Posts
Должен ли я использовать отдельные установки WordPress или WordPress-Mutisite для установки? Как удалить стандартную ссылку «Войти» WordPress 3.5: вернитесь к старому медиа-загрузчику? Совместимость с несколькими пользователями Как автоматически создать индекс дочерних сайтов в корневом URL-адресе для многоуровневой установки? Сообщение о проблеме обновления повторяется, когда страница отправляется после перезагрузки страницы. Повторное повторение одного повторного изображения Показывать только один раз в 10 посещений Визуальный композитор и дополнительные пользовательские поля Что здесь не так? Проблема с post_id и meta_value получить постоянную ссылку на страницу детей в цикле Как виджет должен ссылаться на то, что добавлено в пользовательские подменю или поля addmenu? Запрос MySQL в WordPress с AJAX Редактировать tag_id в категориях страниц панели инструментов Показать диалоговое окно в плагине TinyMCE и использовать в нем функции WordPress php

Как выполнить цикл WordPress, вызванный функцией фильтрации?

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

К сожалению, петля, похоже, возвращается с приседанием. В моей тестовой установке должно быть возвращено 10 сообщений. Однако var_dump в приведенном ниже заявлении возвращает NULL 10 раз. Установка get_post($post) внутри цикла вернет первый результат для каждого экземпляра.

var_dump , var_dump ing $hw_selectbox_query вернет, казалось бы, правильный объект, поэтому определенно проблема с самим циклом, не определяющим объект $post . Я мог бы запустить цикл foreach через возвращаемый запрос, но это не похоже на правильный способ сделать это.

FWIW, эта функция отлично работает при размещении на пустой странице интерфейса.

 function populate_selectbox_field( $field ){ $field['choices'] = array(); $hw_selectbox_args = array( post_type => 'custom_post_type', orderby => 'title', order => 'ASC', posts_per_page => -1 ); $hw_selectbox_query = new WP_Query($hw_selectbox_args); if ( $hw_selectbox_query->have_posts() ) : while ( $hw_selectbox_query->have_posts() ) : $hw_selectbox_query->the_post(); var_dump($post); $field['choices'][$post->ID] = $post->post_title // Do more complicated stuff in real life endwhile; endif; return $field; } add_filter('acf/load_field/name=destination_node', 'populate_destination_node_field'); 

При использовании пользовательского запроса, чтобы получить доступ к информации о $post , вам нужно указать post как переменную класса пользовательский WP_Query.

Поскольку вы построили запрос как:
$hw_selectbox_query = new WP_Query($hw_selectbox_args);

Затем вы получите доступ к переменной post $hw_selectbox_query , например:

 var_dump($hw_selectbox_query->post); 

Это даст вам информацию, необходимую / хотите построить массив $field .