我想对 WP 帖子进行分组(来自 acf 字段“telechargement_type_fichier”的 values 的“dlm_download”帖子类型。
Value 1 : 帖子 1 帖子 2 帖子 3
Value 2 : 帖子 4 帖子 5 帖子 6
Value 3 : 帖子 7 帖子 8 帖子 9 ...
这是我的代码:
$field_posts = array();
$args = array(
'post_type' => 'dlm_download',
'post_status' => 'publish',
);
$query = new WP_Query($args);
while ( $query->have_posts() ) {
$query->the_post();
$field = get_post_meta(get_the_ID(), 'telechargement_type_fichier',true);
$field_posts[$field][] = $post;
}
wp_reset_query();
foreach ($field_posts as $field_post => $field_title) {
echo '<p style="font-weight:bold;">' . esc_html($field_post) . '</p>';
foreach ($field_title as $post_listing => $listing)
{ setup_postdata($listing);
$id = get_the_id();
$title = get_the_title($id);
var_dump($title);
}
wp_reset_postdata();
}
但是,这是我获得的结果:
Value 1 - program_scolaire
帖子 1 - 标题
帖子 1 - 标题
帖子 1 - 标题
Value 2 - 模块
帖子 1 - 标题
Value 3 - 传单
帖子 1 - 标题
帖子 1 - 标题
Value 4 - 朱
帖子 1 - 标题
帖子 1 - 标题
帖子 1 - 标题
帖子 1 - 标题
我通过现有的 values 字段获得真实的帖子编号,但相同的帖子/标题进入循环。可能是 post id 错误或“reset_postdata()”...不明白为什么。
你可以帮帮我吗 ?
谢谢 !
回答1
我对 PHP/Wordpress 不是很熟悉,但我认为你的内部 foreach 应该是这样的:
foreach ($field_post as $post_listing)
{ setup_postdata($post_listing);
$id = get_the_id();
$title = get_the_title($id);
var_dump($title);
}
或者
foreach ($field_post as $post_listing => $listing)
{
var_dump($listing);
}
回答2
我找到了解决方案。
制作一个数组:
$field_posts = array();
查询您希望按字段 value 过滤的帖子,并调用 ACF 字段和您要显示的 value。
$args = array(
'post_type' => 'dlm_download',
'post_status' => 'publish',
'posts_per_page' => 20,
);
$query = new WP_Query($args);
while ( $query->have_posts() ) {
$query->the_post();
$title = get_the_title();
$value = get_field_object('telechargement_type_fichier');
$field = $value['value']['label'];
$field_posts[$field][$title] = $post;
}
将一个 foreach 循环变成一个 foreach 循环,以对每个字段的每个帖子进行分类 value
foreach($field_posts as $field_post => $field_title) {
echo '<p><strong>' . $field_post . '</strong></h3>';
foreach($field_title as $post_listing => $listing) {
echo '<p>' . $post_listing . '</p>';
}
} wp_reset_postdata();
我得到:
字段 value 1
帖子 1
帖子 2字段 value 2
帖子 3
帖子 4
ETC .........