如何创建" add_filter"函数if" filter name"是" $ filter"在apply_filters中?

时间:2015-07-13 20:47:31

标签: php wordpress bbpress

在下面的WP php代码中:

function bbp_get_topic_post_count( $topic_id = 0, $integer = false ) {
        $topic_id = bbp_get_topic_id( $topic_id );
        $replies  = (int) get_post_meta( $topic_id, '_bbp_reply_count', true ) + 1;
        $filter   = ( true === $integer ) ? 'bbp_get_topic_post_count_int' : 'bbp_get_topic_post_count';

        return apply_filters( $filter, $replies, $topic_id );
    }

我想改变" $回复"通过使用过滤器。因为有#34; apply_filters"以上,我认为可以添加" add_filter"。但似乎过滤器名称是" $ filter"

function bbp_reply_count_modified( $replies, $topic_id ) {
            $topic_id = bbp_get_topic_id( $topic_id );
            $replies  = (int) get_post_meta( $topic_id, '_bbp_reply_count', true ); // deleted '+ 1'
            return $replies;
add_filter( '___________________', 'bbp_reply_count_modified', 10, 2 );

在这种情况下,我该如何创建一个" add_filter"功能

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

基于方法第二个参数 $integer的过滤器名称bbp_get_topic_post_count_int(当$integertrue时)或{{ 1}}(当bbp_get_topic_post_count$integer时,这是false的默认参数值,如果方法调用中没有值,则为。{/ p>

此处指定$integer的值:

$filter

因此,您不需要修改方法,但应搜索方法的用法以查看$ integer的输入参数。

要将过滤器用于 $ integer = true ,请使用:

$filter = ( true === $integer ) ? 'bbp_get_topic_post_count_int' : 'bbp_get_topic_post_count';

要将过滤器用于 $ integer = false ,请使用:

add_filter( 'bbp_get_topic_post_count_int', 'bbp_get_topic_post_count', 10, 2 );