如果值不是变量,是否添加_过滤器?

时间:2018-11-08 作者:RobbTe

假设我有这样一个函数:

function cc_get_content_preview() {
    return apply_filters( \'cc_get_content_preview\', get_the_excerpt(), 55 );
}
在这里get_the_excerpt()$value 我可以在add_filter 对的

问题:如您所见,第二个参数apply_filters (get_the_excerpt()), 不是变量。在add_filter 作用如下所示($cctoreturn):

//Set custom content preview for Aff posts
function cc_custom_content_preview($cctoreturn){
$post_id = get_the_ID();
if (is_sticky($post_id)) :
    $cctoreturn = $post_id;
endif;
    return $cctoreturn;
}
add_filter( \'cc_get_content_preview\', \'cc_custom_content_preview\', 20, 1);

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

我真的搞不懂你想做什么。此代码:

apply_filters( \'cc_get_content_preview\', get_the_excerpt(), 55 );
将让开发人员cc_get_content_preview 钩子以更改cc_get_content_preview() 函数返回。当开发人员钩住一个动作或过滤器时,他们使用callback function. 此函数将接收传递给的任何其他参数apply_filters() 作为回调函数的参数。

在您特定的函数中,看起来是这样的:

function my_callback_function( $a, $b ) {
    echo $a; // This will be the value of get_the_excerpt().
    echo $b; // This will be the number 55.
}
add_filter( \'cc_get_content_preview\', \'my_callback_function\', 10, 2 );
但看起来您正在尝试执行类似JavaScript的操作并传递完整的函数?那是行不通的。您不能像在JavaScript中那样将函数放入变量中,然后再执行它们。

结束

相关推荐

Calculations in functions.php

我为自己创建了一个发票主题,并试图在自定义列中获取发票总额。我已经尝试调整模板页面中使用的代码,以便在函数中显示这一点。php文件,但它不工作。我的乘法操作数出现了一个操作数错误,我不知道为什么。这是我的代码(如有任何帮助,将不胜感激)。if( $column_name == \'invoice_total\' ) { $hours = 0; // This allows counting of each sub_field //* Set repeater va