php | wordpress |排序数组值

时间:2015-03-08 02:11:11

标签: php arrays wordpress sorting

我在Wordpress中使用自定义帖子类型的''出版物。"最初,每个"出版物"被分配到单个"类别,"让它们按类别显示很简单......

$args = array( 'post_type' => 'publications', 'meta_key' => 'publications_category', 'orderby' => 'meta_value', 'order' => 'ASC');
$loop = new WP_Query( $args );

然后客户决定他们要分配相同的"出版物"到多个"类别,"我的meta_key成了一个数组。现在我无法获得"出版物"按"类别按字母顺序排序。"

因为我的meta_key现在是一个数组,所以我删除了' meta_key',' order_by'和'命令'来自查询。这就是我一直在测试的......

<?php
$args = array( 'post_type' => 'publications');
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$cp_category = get_post_meta($post->ID, 'publications_categories', true); // assign a var to the array
foreach ($cp_category as $category) { // iterate through the array
the_title();  // print the title
echo '<br><br>' . $category . '<br><br>'; //  print the category
}
endwhile;
?>

我在数组上尝试了各种sort()函数而没有运气。

共有六个类别。值为字符串:&#39; cabg_vs_opcab&#39;,&#39; high_risk_patients&#39;,&#39; death_and_morbidity&#39;,&#39; stroke&#39;,&#39; clampless_beating_heart&#39;,和经济学。&#39;

这是输出的样子。我添加了一个print_r()来遍历每个条目上面的数组:

http://offpump.com/clinical-publications/

我想要做的就是按照他们的类别订购这些条目,所以我希望有办法做到这一点。

感谢您提供任何帮助或建议!

2 个答案:

答案 0 :(得分:2)

从数据库中检索后,不应按字母顺序对它们进行排序。

为避免任何重复处理,您应该预先获取它们。

快速搜索让我了解了wordpress查询的语法:

$args = array(
        'post_type' => 'post',
        'meta_key' => 'pb_issue_featured',
        'orderby'   => 'meta_value',
        'order' => 'DESC',
        'post_status' => 'publish',
        'posts_per_page' => $posts,
        'paged' => $paged,
        'meta_query' => array(
            array(
                'key' => 'headline',
                'value' => 1,
                'compare' => '!=' 
                )
            )
        );
$q = new WP_Query($args);

https://wordpress.stackexchange.com/questions/109849/order-by-desc-asc-in-custom-wp-query

答案 1 :(得分:0)

因为唯一对我有用的'compare'参数是“LIKE”,我最终使用它。页面/模板有一个循环用于每个“LIKE”查询 - 总共六个 - 并且它工作正常b / c没有那么多帖子。

然而,我决心找到一个更好的解决方案,当我到达那里时,我会回来发布它。

感谢所有帮助过的人。