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的“导读”板块。