如果 "filter name" 是 apply_filters 中的 "$filter" 形式,如何创建一个 "add_filter" 函数?
How to create an "add_filter" function if "filter name" is in the form of "$filter" in apply_filters?
在下面的 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 );
}
我想使用过滤器更改“$replies”。既然上面有"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" 函数?
感谢您的帮助。
过滤器名称,基于方法的第二个参数 $integer
,是 bbp_get_topic_post_count_int
(当 $integer
是 true
) 或 bbp_get_topic_post_count
(当 $integer
为 false
,这是 $integer
的默认参数值,如果在方法调用时没有它的值)。
这里赋值为$filter
:
$filter = ( true === $integer ) ? 'bbp_get_topic_post_count_int' : 'bbp_get_topic_post_count';
因此,您无需修改该方法,但应搜索该方法的用法以查看 $integer 的输入参数是哪个。
要为 $integer = true 使用过滤器,请使用:
add_filter( 'bbp_get_topic_post_count_int', 'bbp_get_topic_post_count', 10, 2 );
要为 $integer = false 使用过滤器,请使用:
add_filter( 'bbp_get_topic_post_count', 'bbp_get_topic_post_count', 10, 2 );
在下面的 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 );
}
我想使用过滤器更改“$replies”。既然上面有"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" 函数?
感谢您的帮助。
过滤器名称,基于方法的第二个参数 $integer
,是 bbp_get_topic_post_count_int
(当 $integer
是 true
) 或 bbp_get_topic_post_count
(当 $integer
为 false
,这是 $integer
的默认参数值,如果在方法调用时没有它的值)。
这里赋值为$filter
:
$filter = ( true === $integer ) ? 'bbp_get_topic_post_count_int' : 'bbp_get_topic_post_count';
因此,您无需修改该方法,但应搜索该方法的用法以查看 $integer 的输入参数是哪个。
要为 $integer = true 使用过滤器,请使用:
add_filter( 'bbp_get_topic_post_count_int', 'bbp_get_topic_post_count', 10, 2 );
要为 $integer = false 使用过滤器,请使用:
add_filter( 'bbp_get_topic_post_count', 'bbp_get_topic_post_count', 10, 2 );