如何根据它的翻译值重新排序此数组?

时间:2018-01-19 16:59:28

标签: php arrays wordpress

我有一系列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;
}

1 个答案:

答案 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;
}