我有一系列Wordpress页面父ID,然后我使用FOREACH
循环将每个父ID替换为页面名称(父级)。
问题是数组按ID顺序排序,我现在想要使用标题重新排序。
我该怎么做?
function bv_quick_select_get_category_options() {
$procedure_pages = get_posts(array(
'post_type' => 'page',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => '_wp_page_template',
'value' => 'template-procedure-minimal.php'
)
)
));
$procedure_categories = array();
foreach($procedure_pages as $p1) {
array_push($procedure_categories, wp_get_post_parent_id($p1->ID));
}
$output = '';
foreach(array_unique($procedure_categories) as $c) {
$output .= '<option value="'.get_post($c)->post_title.'">'.get_post($c)->post_title.'</option>';
}
return $output;
}
答案 0 :(得分:0)
我认为使用一个基于id的查询获取类别会更有效,并按数据库中的标题进行排序。这是我如何通过快速阅读wordpress文档来做到这一点的最佳尝试,但我不是wordpress用户所以它可能需要一些工作。
function bv_quick_select_get_category_options() {
$procedure_pages = get_posts(array(
'post_type' => 'page',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => '_wp_page_template',
'value' => 'template-procedure-minimal.php'
)
)
));
$ids = array_column($procedure_pages, 'ID');
$categories = get_posts([
'include' => $ids,
'order_by' => 'title'
]);
$output = '';
foreach($categories as $c) {
$output .= '<option value="'.$c->post_title.'">'.$c->post_title.'</option>';
}
return $output;
}