如何按非字母顺序堆叠姓名列表?

时间:2012-01-05 作者:Martin G

这方面的更新:我按照建议,成功地从“orderby”=>“title”更改为“orderby”=>“date”。这几乎使订单完美无瑕,除了一支单簧管不符合订单,放错了位置。据我所知,这可能是编程中的一个错误,因为其他一切都按正确的顺序工作?

请参见:http://www.dnbe.no/ensemblet/ 左上角第二名:埃利克·乔达尔(EirikJordal),克拉里内特(klarinett),应该在更靠下的位置。

有人知道吗?

谢谢,Martin G,挪威。

整个代码:

    <?php get_featured_posts(\'musicians\'); ?>

    <section id="primary">

        <div id="content" role="main">

            <header class="page-header">
                <h2 class="page-title">Musikerne i Det Norske Bl&aring;seensemble</h2>
            </header>   

            <div class="musicians-archive">
                <?php
                    global $post;
                    $posts = get_posts(array(
                        \'post_type\'=>\'dnbe_musician\',
                        \'post_status\'=>\'publish\',
                        \'orderby\'=>\'date\',
                        \'order\'=>\'ASC\',
                        \'numberposts\'=>-1
                    ));
                    if($posts){
                        $c = 0;
                        $al = count($posts);
                        $r = round($al / 3);
                        $id = 1;
                        foreach($posts as $post){ 
                            $post_custom = get_post_custom($post->ID);
                            if($c == 0){ ?>
                                <div class="dnbe_musician_column">
                            <?php 
                            }
                            if($post_custom[\'dnbe_musician_instrument\'][0] != \'\'){
                                $instrument = \', \'.$post_custom[\'dnbe_musician_instrument\'][0];
                            } else {
                                $instrument = \'\';
                            }
                            ?>
                            <div class="dnbe_musician" musician_id="<?php echo $id; ?>"><h2 class="entry-title"><a href="<?php echo get_permalink($post->ID); ?>"><?php echo $post->post_title.$instrument; ?></a></h2></div>
                            <?php
                            $c++;
                            if($c == $r+1){ 
                                $c = 0; ?>
                                </div>
                            <?php } 
                            ?>
                        <?php $id++;
                        }
                    }
                    wp_reset_query();
                ?>
            </div>      

        </div><!-- #content -->
    </section><!-- #primary -->
提前感谢,Martin G,挪威

我试图在网页上按正确的、非字母顺序排列我们音乐家的名字。在cms中,顺序是正确的,但在网页上,名称是按字母顺序排列的。

主页是由一家公司制作的,但我现在尝试自己编辑一些部分。

如何在cms内修复此问题?

请在此处查看列表:http://www.dnbe.no/ensemblet/

代码为:

    <?php get_featured_posts(\'musicians\'); ?>

    <section id="primary">

        <div id="content" role="main">

            <header class="page-header">
                <h2 class="page-title">Musikerne i Det Norske Bl&aring;seensemble</h2>
            </header>   

            <div class="musicians-archive">
                <?php
                    global $post;
                    $posts = get_posts(array(
                        \'post_type\'=>\'dnbe_musician\',
                        \'post_status\'=>\'publish\',
                        \'orderby\'=>\'title\',
                        \'order\'=>\'ASC\',

1 个回复
SO网友:Exit

你有一个看起来像是定制主题的东西,这个主题可能有一个处理合奏部分的模板。在该部分的代码中(可以通过外观->编辑器->保存此模板的文件名来访问),应该有某种循环来从数据库中提取名称。尝试将代码粘贴到您的问题中,以获得更好的回答。

一般来说,如果您的主题是使用Wordpress框架开发的,并且它为合奏条目使用自定义的帖子类型,那么它可能有一个类似于以下内容的循环:

$wpdb->query("SELECT ID,post_name FROM {$wpdb->prefix}posts WHERE post_type=\'ensemblet\' ORDER BY post_title;");
如果您看到类似的情况,请将“ORDER BY post\\u title”替换为“ORDER BY ID”或“ORDER BY post\\u date”。

如果循环更像这样:

<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
... some code ...
<?php endwhile; ?>
然后在while语句上方添加以下行:query\\u posts(\'orderby=date\');

如果已经有一个query\\u posts调用,则必须编辑该行以包含orderby=日期,该日期可以用两种方式表示:

带符号的字符串(&;)在此之前:

query_posts(\'otherstuff=something&orderby=date\');
或者使用添加了一行的数组(确保在最后一行的下一行添加逗号):

$args = array(
\'otherstuff\' => \'something\',
\'orderby\' => \'date\'
);
query_posts($args);

结束

相关推荐

Enable page templates. How?

基本问题,但我想启用页面模板。我有一个启用了页面模板的主题。我切换到了另一个模板,但没有更改模板的选项,即使在创建新页面时也是如此。如何打开此选项?我在抄本和论坛上找到了根,但找不到。