为 bbPress 添加更多 「话题视图」(显示热门帖子、随机帖子等)

为 bbPress 添加更多 「话题视图」(显示热门帖子、随机帖子等)

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 作者
    帖子
  • Geticer
    参与者
    • 文章数量: 63
    @monicfenga
    楼主

    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 的 「导读」 板块。

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 哎呀,回复话题必需登录。

话题信息