如何按第一个字母列出术语,如A和B等

时间:2011-07-23 作者:dkmojo

我需要将一组分类术语除以术语名称的第一个字母。我找到了一些可能有用的代码,但当我实现代码时,没有得到返回值。我确信它在我的代码中一定很小,但我就是找不到它。

此分类法包含我的网站上列出的商店所携带的品牌和标签。因此,术语的数量相当大。随着网站的发展,一些标签/品牌/术语以数字开头,其他字母和其他外来字符,如俄语,可能是日语、阿拉伯语等

下面的代码只是我第一次运行,只显示以字母开头的术语。

$letters = array(\'A\',\'B\',\'C\',\'D\',\'E\',\'F\',\'G\',\'H\',\'I\',\'J\',\'K\',\'L\',\'M\',\'N\',\'O\',\'P\',\'Q\',\'R\',\'S\',\'T\',\'U\',\'V\',\'W\',\'X\',\'Y\',\'Z\');
$numbers = array(0,1,2,3,4,5,6,7,8,9);
$chracters = array_merge( $letters, $numbers );

$args = array( \'orderby\' => \'name\', \'order\' => \'asc\' );

$terms = get_terms( $taxonomy, $args );

if( count($terms) > 0 ):    

    foreach( $terms as $term ):
        $firstchar = (string) substr( $term->name, 0 );
        $firstchar = strtoupper( $firstchar );
        $termlink = get_term_link( $term->slug, $taxonomy );
            if( in_array($firstchar,$letters) ):
            ?>

            <div class="post-box alignleft">                    
                <p class="post-title"><a href="<?php echo $termlink; ?>"><?php echo $term->name; ?></a></p>
            </div>
            <!-- /end .post-box -->

            <?php
            endif;//is a letter
    endforeach;//$terms as $term

endif;//count>0
我不确定是什么原因导致术语不显示。这里是到开发服务器的链接http://obeliskwebdesign.com/sandbox/directorysexy/in-stock-sort/

感谢您的任何见解或帮助。我被难住了。

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

$taxonomy 在本例中可能未设置?或者您在代码的其他地方设置了它?

还可以查看php的ctype functions 在这里

结束

相关推荐

get_terms return errors

嗨,当我尝试get_terms(); 通过此代码在主题选项中$catalogs_terms = get_terms( \'catalogs\' ); $mycatalogs = array( -1 => \'Select a catalog\' ); if ( $catalogs_terms ) { foreach ( $catalogs_terms as $catalog_term ) { $mycatalogs[$cata