修改作者动态显示的文章类型

  1. 主页
  2. 文档
  3. B2主题使用教程
  4. B2主题二开
  5. 修改作者动态显示的文章类型

B2 主题带了一个【作者面板】小工具,可以在外观 – 小工具界面,添加到包含“内页”字样的小工具区域:

然后在前端侧边栏就会显示出来:

如果你点击上面的【Ta的全部动态】就可以看到关于该作者发布的最新消息,默认包含'文章post','圈子circle','文档document','快讯newsflashes'四种文章类型的动态,如果你需要新增或删除某些文章类型,那就是我们这个教程的用意了。

查看B2主题的 b2/Pages/tastream.php 文件,我们可以看到预留了一个钩子 b2_stream_author_post_type,代码片段如下:

$args = array(
    'post_type'=>apply_filters('b2_stream_author_post_type', array(
        'post','circle','document','newsflashes'
    )),
    'posts_per_page' => $count,
    'orderby' => 'modified',
    'offset'=>$offset,
    'author'=>$author_id,
    'post_status'=>'publish',
    'include_children' => true,
    'paged'=>$paged
);

所以,我们通过钩子就可以修改了,具体的代码片段如下,可添加到子主题的 functions.php 中:

/*
* 修改作者动态的文章类型
* https://www.wpdaxue.com/docs/b2/b2-dev/stream-author-post-type
*/
function b2child_stream_author_post_type( $post_types ) {
    
    $post_types = array('post','circle','document','newsflashes','shop');
    
    return $post_types;
    
}
add_filter('b2_stream_author_post_type', 'b2child_stream_author_post_type' );

注意看代码的第7行的数组array()的值,就是你希望显示的文章类型数组,在上面的的样例中,我们添加了【商品shop】这个类型。

如果你要查看文章类型的值,可以在后台点击对应文章类型导航菜单下的第一个子菜单,比如页面-全部页面,就可以在网址中看到 /wp-admin/edit.php?post_type=page,其中 post_type= 后面的值,就是文章类型的值了,比如页面就是 page

2023年11月9日补充:

注意,以上代码只会影响【Ta的全部动态】页面的文章类型,下图的【作者小工具】显示的文章类型不会改变,因为这个小工具没有添加钩子。

解决办法就是我们要添加钩子给它,在 b2/Modules/Templates/Widgets/Author.php 文件的 166 行左右的位置,有设置文章类型的代码:

'post_type'=>array('post','circle','document','newsflashes','shop'),

将上面的代码替换为下面的,保存即可:

'post_type'=>apply_filters('b2_stream_author_post_type', array('post','circle','document','newsflashes','shop')),

注:该问题已经反馈给春哥,以后版本应该会添加,如果你编辑的时候,发现已经有上面这行代码了,就不需要编辑了。

这篇文章对您有用吗? 4 1
3 条回复 A文章作者 M管理员
  1. B2型铅笔

    这个地方的怎么修改呢?

    • 倡萌

      这个教程说的就是改这个地方的文章类型的呀,你只能改这个地方调用该作者哪些文章类型的内容

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索