bbPress 默认提供两种 「视图」:最热话题 与 没有回复的话题。如果这两种视图满足不了你的需求 (比如你想显示随机帖子、 「已解决」 的帖子等),可以将以下 PHP 代码放进你的主题的 functions.php 文件里,并去掉你不需要的部分。
方法来自:https://bbpress.org/forums/topic/view-topic-by/
/**
* 注册这些 bbPress 视图:
* - 热门话题
* - 不受欢迎的话题
* - 随机话题
* - 关闭的话题
* - 单一标签 (测试)
* - 所有话题
* - 开放 (未关闭) 的话题
* - 随机的单一话题
*
* @uses bbp_register_view() 用于注册视图
*/
function ntwb_register_custom_views() {
bbp_register_view( 'popular-topics', __( 'Popular Topics' ), array( 'meta_key' => '_bbp_reply_count', 'orderby' => 'meta_value_num' ), false );
bbp_register_view( 'unpopular-topics', __( 'Unpopular Topics' ), array( 'meta_key' => '_bbp_reply_count', 'orderby' => 'meta_value_num', 'order' => 'asc' ), false );
bbp_register_view( 'random-topic', __( 'Random Topic' ), array( 'orderby' => 'rand' ), false );
bbp_register_view( 'closed', __( 'Recently Closed' ), array( 'post_status' => 'closed' ), false );
bbp_register_view( 'taggedtest', __( 'Tagged Test' ), array( 'topic-tag' => '【换成具体的话题标签】' ) );
bbp_register_view( 'all-topics', __( 'All Topics' ), array( 'order' => 'DESC' ), false );
bbp_register_view( 'open', __( 'Open (Not Closed)' ), array( 'post_status' => 'publish' ), false );
bbp_register_view( 'random-single-topic', __( 'Random Single-Topic' ), array( 'orderby' => 'rand', 'posts_per_page' => '1', 'max_num_pages' => '1' ), false );
}
add_action( 'bbp_register_views', 'ntwb_register_custom_views' );
如需定制自己的视图,按照这个规则写即可:
bbp_register_view(
$view, //视图在网址里的名字
$title, //视图的显示名字 (用户会看到这个)
$query_args = array(), //查询参数,请参考 WP_Query 的 $args 提供的参数
bool $feed = true, //是否可被订阅 (RSS)
);
类似 Discuz 的 「导读」 板块。