分类术语排序依据...姓!

时间:2015-07-20 作者:Elena

我有一个名为“authors”的自定义分类法,在其中插入其他作者。我的问题是:是否可以按“姓氏”的顺序列出所有分类术语。如果我清楚地按名称订购,它看起来像:

Andrea Red,Daniel Green,Elena Blue,我想按姓氏排序:

你有什么建议吗?在Custom Taoxnomy中添加一个新的自定义字段,指定姓氏,然后按该术语排序,这样更好吗?

非常感谢你

埃琳娜

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

您可以尝试MySQL函数SUBSTRING_INDEX()get_terms_orderby 过滤器:

/**
 * Order by the last word in the term name
 * @link https://wordpress.stackexchange.com/a/195039/26350
 */
add_filter( \'get_terms_orderby\', function( $orderby, $args )
{
    if( isset( $args[\'orderby\'] ) && \'wpse_last_word\' === $args[\'orderby\'] )  
        $orderby = " SUBSTRING_INDEX( t.name, \' \', -1 ) ";
    return $orderby;
}, 10, 2 );
按术语名称中的最后一个单词排序。

在这里,我们通过定制激活最后一个单词wpse_last_word 参数:

$terms = get_terms( \'category\', [ \'orderby\' => \'wpse_last_word\' ] );
您还可以添加wpse_last_word 参数,通过get_terms_args 过滤器,如果需要覆盖某些术语查询。

我最近用过这个方法here 对于帖子。

结束

相关推荐

Query Taxonomy By Page Title

我想做的是在具有该分类名称的页面上显示共享该分类的帖子。例如,一个名为“PHP”的页面将显示自定义分类法“language”设置为“PHP”的所有帖子。到目前为止我所拥有的。。$secondary_loop = new WP_Query(array( \'tax_query\' => array( array( \'taxonomy\' => \'language\', \'term