首页 > 解决方案 > 我可以在 entry.php 上使用 bp_get_activity_content_body() 但如何在其他上使用

问题描述

我可以使用 但我如何在 bp-core-template.php 上使用bp_get_activity_content_body()entry.php

抱歉我的问题很糟糕,我对 php 编辑器很陌生。

标签: phpwordpressbuddypress

解决方案


bp-core-template.php 是 BuddyPress 的核心文件之一,因此编辑该文件是个坏主意。每当您更新 Buddypress 时,您的更改很有可能会被覆盖。

如果您尝试更改在 bp-core-template.php 中找到的函数的结果,那么您将需要使用该函数中的一个过滤器来安全地更改“wordpress 方式”的内容。

因此,如果您想更改在 bp-core-template.php 的第 877 行找到的函数 bp_create_excerpt 的输出,您可以在主题的 functions.php 文件中使用过滤器 bp_create_excerpt。

在 functions.php 中(从 hookr.io 修改的示例):

// define the bp_create_excerpt callback 
function filter_bp_create_excerpt( $text, $original_text, $length, $options ) { 

    if ( function_exists( bp_get_activity_content_body )
        $text = bp_get_activity_content_body();

    return $text; 
};

// add the filter 
add_filter( 'bp_create_excerpt', 'filter_bp_create_excerpt', 10, 4 );

编辑:应该注意的是,我不知道 bp_get_activity_content_body() 在这种情况下会返回什么,如果我不想要截断的摘录,我可能只会返回 $original_text。我的目的是强调你应该如何改变插件核心文件的输出。


推荐阅读