Php 自定义BuddyPress中返回的bp_activity_action()字符串

Php 自定义BuddyPress中返回的bp_activity_action()字符串,php,customization,buddypress,Php,Customization,Buddypress,我一直试图将返回的字符串从bp_activity_action中分离出来,但一直在兜圈子 默认情况下,它返回“用户”在站点“站点标题”“时间戳”上写的新帖子“帖子标题” 如何获取“用户”、“帖子标题”和“站点标题”的值,以便将它们放置在我想要的位置 当前我的代码如下所示: <?php if ( bp_has_activities( bp_ajax_querystring( 'activity' ) . '&action=new_blog_post' ) ) : ?> &l

我一直试图将返回的字符串从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;?>

我已经查阅了文档,还没有找到解决方案。在论坛中,我找到了一些关于使用过滤器的建议,但我不熟悉它们的用法,无法使其发挥作用


任何帮助都将不胜感激。

我没有为您提供完整的解决方案,但我至少成功地打破了时间戳。以下是我在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>


函数的作用是:允许参数隐藏时间戳。关于参数在函数代码中的工作原理,可以在buddypress\bp activity\bp-activity-template.php中找到解释

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

您可以在此处看到格式化输出:

有一些关于增强Buddypress以提供您提到的元素的单独输出的讨论。看见根据这次讨论,这些更改本应在Buddypress 2.0中实现,但我找不到它们


希望这有帮助。:-)

我没有一个完整的解决方案给你,但我至少成功地打破了时间戳。以下是我在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>


函数的作用是:允许参数隐藏时间戳。关于参数在函数代码中的工作原理,可以在buddypress\bp activity\bp-activity-template.php中找到解释

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

您可以在此处看到格式化输出:

有一些关于增强Buddypress以提供您提到的元素的单独输出的讨论。看见根据这次讨论,这些更改本应在Buddypress 2.0中实现,但我找不到它们


希望这有帮助。:-)

我相信这是解决这个问题的好办法。与创建筛选器或重写操作来滚动您自己的bp_activity_操作不同,您只需否定您不想显示的参数即可。我已经有一点没有看过bp_activity_action函数了,所以我不熟悉它可以接收的参数,但希望它不仅仅是没有时间戳。我会搞砸的。也许开始试着按索引获取操作参数,看看我能想出什么。谢谢你的解决方案!很高兴我能提供帮助:-)如果您发现更多定制的可能性,请继续跟进。bp_活动_成员_显示_名称();对于显示活动用户名,我相信这是一个很好的解决方案。与创建筛选器或重写操作来滚动您自己的bp_activity_操作不同,您只需否定您不想显示的参数即可。我已经有一点没有看过bp_activity_action函数了,所以我不熟悉它可以接收的参数,但希望它不仅仅是没有时间戳。我会搞砸的。也许开始试着按索引获取操作参数,看看我能想出什么。谢谢你的解决方案!很高兴我能提供帮助:-)如果您发现更多定制的可能性,请继续跟进。bp_活动_成员_显示_名称();用于显示活动用户名