为 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 个帖子)
  • 哎呀,回复话题必需登录。

话题信息