GET_POST Orderby在插件中不起作用

时间:2015-05-15 作者:KC Chai

请看一下下面的循环,我在尝试按标题、名称和修改顺序排列附件时遇到了问题。

<?php
                        foreach ($instance[\'data\'] as $id) :
                                $args = array(
                                    \'include\' => $id,
                                    \'post_type\' => \'attachment\',                                    
                                    \'posts_per_page\' => -1,
                                    \'post_status\' => \'any\',
                                    \'orderby\' => \'title\',
                                    \'order\' => \'DESC\',                                  
                                );
                                $data_attach = get_posts($args);
                                foreach ($data_attach as $data) :                                   
                                    ?>          
                                    <?php print_r($data->ID);?>                                     
                                    <?php
                                endforeach;                                
                        endforeach;
                        ?>
打印\\R

print\\u r($实例[\'data]);

Array ( [0] => 1686 [1] => 1628 [2] => 1027 [3] => 1022 [4] => 1045 [5] => 1029 ) 
打印(数据->ID);

1686 1628 1027 1022 1045 1029 

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

你没有得到任何订单,因为你正在制作多个get_posts() 调用并仅检索其中每个中的单个帖子。您不能订购单个邮件。:)

您需要去掉最外层的循环,只需传递一组ID(这将是您的$instance[\'data\']) 通过单个get_posts() 呼叫

SO网友:Wali Hassan

正如我所说,在您的自定义场景中,在获得结果后,以下是您的操作方法:

$data_attach = get_posts($args);
        $title_array = array();

        foreach ($data_attach as $data) :                                   
            $title_array[] = $data->post_title;
        endforeach;

        sort($title_array);
            foreach ($title_array as $key => $val) {
                echo $val . "<br />";
            }  
此外,请参阅:http://php.net/manual/en/array.sorting.php

结束