如何列出所有自定义帖子类型名称(不是帖子)

时间:2015-01-20 作者:Mona Coder

有一些自定义的帖子类型,如"Projects", "Products""Events" 我需要在一页中列出它们。请注意,我不想在这里列出任何帖子!相反,我只想查询所有自定义帖子类型的名称并将它们链接到archive-projects.php, archive-products.phparchive-events.php 对于他们中的每一个人。你能告诉我怎么做吗?谢谢

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

获取所有自定义帖子类型:

$post_types = get_post_types( array ( \'_builtin\' => FALSE ), \'objects\' );
按名称排序:

uasort( $post_types, \'sort_cpts_by_label\' );

/**
 * Sort post types by their display label.
 *
 * @param object $cpt1
 * @param object $cpt2
 * @return int
 */
function sort_cpts_by_label( $cpt1, $cpt2 ) {

    return strcasecmp(
        $cpt1->labels->name,
        $cpt2->labels->name
    );
}
如果存档文件确实可用,请将帖子类型名称链接到其存档文件:

foreach ( $post_types as $post_type => $properties ) {
    if ( $properties->has_archive ) {
        printf(
            \'<a href="%1$s">%2$s</a><br>\',
            get_post_type_archive_link( $post_type ),
            $properties->labels->name
        );
    }
}

结束

相关推荐

如何列出所有自定义帖子类型名称(不是帖子) - 小码农CODE - 行之有效找到问题解决它

如何列出所有自定义帖子类型名称(不是帖子)

时间:2015-01-20 作者:Mona Coder

有一些自定义的帖子类型,如"Projects", "Products""Events" 我需要在一页中列出它们。请注意,我不想在这里列出任何帖子!相反,我只想查询所有自定义帖子类型的名称并将它们链接到archive-projects.php, archive-products.phparchive-events.php 对于他们中的每一个人。你能告诉我怎么做吗?谢谢

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

获取所有自定义帖子类型:

$post_types = get_post_types( array ( \'_builtin\' => FALSE ), \'objects\' );
按名称排序:

uasort( $post_types, \'sort_cpts_by_label\' );

/**
 * Sort post types by their display label.
 *
 * @param object $cpt1
 * @param object $cpt2
 * @return int
 */
function sort_cpts_by_label( $cpt1, $cpt2 ) {

    return strcasecmp(
        $cpt1->labels->name,
        $cpt2->labels->name
    );
}
如果存档文件确实可用,请将帖子类型名称链接到其存档文件:

foreach ( $post_types as $post_type => $properties ) {
    if ( $properties->has_archive ) {
        printf(
            \'<a href="%1$s">%2$s</a><br>\',
            get_post_type_archive_link( $post_type ),
            $properties->labels->name
        );
    }
}

相关推荐