J'essaie donc de renseigner une zone de sélection Champs personnalisés avancés avec un tableau compliqué de Nice basé sur certaines données de publication. J'ai essayé de le faire en effectuant une requête personnalisée et en parcourant les publications renvoyées.
Malheureusement, la boucle semble revenir squatter. Lors de mon installation de test, il devrait renvoyer 10 messages. Cependant, le var_dump
dans l'instruction ci-dessous renverra NULL
10 fois. Si vous définissez get_post($post)
dans la boucle, le premier résultat sera renvoyé.
Bizarrement, var_dump
ing $hw_selectbox_query
retournera un objet apparemment correct. Il est donc clair que la boucle elle-même ne définit pas l'objet $post
. Je pourrais exécuter une boucle foreach
dans la requête renvoyée, mais cela ne semble pas être la bonne façon de le faire.
FWIW, la fonction s’exécute parfaitement quand elle est placée sur une page d’accueil vierge.
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');
Lors de l'utilisation d'une requête personnalisée, pour accéder aux informations $post
, vous devez référencer post
en tant que variable de classe le WP_Query personnalisé.
Depuis que vous avez construit la requête en tant que:$hw_selectbox_query = new WP_Query($hw_selectbox_args);
Ensuite, vous accéderiez à la variable post
de $hw_selectbox_query
, comme suit:
var_dump($hw_selectbox_query->post);
Cela vous donnera les informations dont vous avez besoin/souhaitez construire votre tableau $field
.