【问题标题】:Customizing the bp_activity_action() returned string in BuddyPress在 BuddyPress 中自定义 bp_activity_action() 返回的字符串
【发布时间】:2014-05-12 13:37:12
【问题描述】:

我一直在尝试将返回的字符串从 bp_activity_action 中分离出来,但一直在绕圈子。

默认返回“用户”在站点“站点标题”“时间戳”上写了一个新帖子“帖子标题”

如何获取“用户”、“帖子标题”和“网站标题”的值,以便将它们放置在我想要的位置?

目前我的代码如下所示:

<?php if ( bp_has_activities( bp_ajax_querystring( 'activity' ) . '&action=new_blog_post' ) ) : ?>
  <?php while ( bp_activities() ) : bp_the_activity();  ?>
    <div class="activity-header">           
      <?php bp_activity_action(); ?>
    </div>   
  <?php endwhile; ?>
<?php endif;?>

我查看了文档,但未能找到解决方案。在论坛中,我发现了一些关于使用过滤器的建议,但我不熟悉它们的使用,无法让它发挥作用。

任何帮助将不胜感激。

【问题讨论】:

    标签: php customization buddypress


    【解决方案1】:

    我没有给你完整的解决方案,但我至少已经成功破解了时间戳。这是我从 Buddypress 旧模板中的 entry.php 修改的代码:

    <div class="activity-header">
    
        <div class="activity-title">
    
            <?php 
                $args = array(
                    'no_timestamp' => true,
                );
                bp_activity_action( $args ); 
            ?>
    
            <?php if ( 'activity_comment' == bp_get_activity_type() ) : ?>
    
                <div class="activity-inreplyto">
                    <strong><?php _e( 'In reply to: ', 'buddypress' ); ?></strong><?php bp_activity_parent_content(); ?> <a href="<?php bp_activity_thread_permalink(); ?>" class="view" title="<?php esc_attr_e( 'View Thread / Permalink', 'buddypress' ); ?>"><?php _e( 'View', 'buddypress' ); ?></a>
                </div>
    
            <?php endif; ?>
    
        </div>
    
        <div class="activity-time">
    
            <?php echo bp_core_time_since( bp_get_activity_date_recorded() ); ?>
    
        </div>
    
    </div>
    

    bp_activity_action() 函数允许使用参数来隐藏时间戳。在 buddypress\bp-activity\bp-activity-template.php 中可以找到函数代码中参数如何工作的说明。

    在上面的代码中,我使用参数从 bp_activity_action() 输出中隐藏时间戳。然后我使用了 bp_core_time_since() 函数来输出时间戳,在我的网站上,它在另一行上单独格式化。

    你可以在这里看到格式化的输出:http://imgur.com/QbgamPa

    有一些关于增强 Buddypress 以提供您提到的元素的单独输出的讨论。见https://buddypress.trac.wordpress.org/ticket/5261。根据这个讨论,更改将在 Buddypress 2.0 中实现,但我无法找到它们。

    希望这会有所帮助。 :-)

    【讨论】:

    • 我相信这是解决这个问题的好方法。无需创建过滤器或覆盖操作来滚动您自己的 bp_activity_action,您只需否定您不想显示的参数即可。有点没看 bp_activity_action 函数,所以对它可以接收的参数不熟悉,但希望它比 no_timestamp 多一点。我会弄乱它的。也许开始尝试按索引获取动作参数,看看我能想出什么。感谢您的解决方案!
    • 很高兴我能帮上忙 :-) 如果您发现进一步的定制可能性,请继续跟进。
    • bp_activity_member_display_name();用于显示活动用户名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多