我正在尝试将第一个函数的参数用作第二个函数中的变量,这就是我到目前为止的工作方式,但我怀疑这是个好方法。请注意,第二个函数 (clauseWhere) 不能有其他参数。
function filtrerDuree($time) {
global $theTime;
$theTime = $time;
function clauseWhere($where = '') {
global $theTime;
return $where .= " AND post_date > '" . date('Y-m-d', strtotime('-' . $theTime. ' days')) . "'";
}
add_filter( 'posts_where', 'clauseWhere' );
}
我不能像这样在第二个函数中直接使用参数 $time:strtotime('-' . $time. ' days')),因为它无论如何都是第一个函数的本地函数。
将全局 $time 放在第二个函数中不起作用,即使我在第一个函数中做了 $time=$time 。
另外,我不明白为什么我需要在第一个函数中将 global 放在 $theTime 上......这个变量在函数之外不存在,所以它没有在函数之外使用任何变量。如果我不把它放在全球范围内,它就行不通。不过,我确实明白,在第二个函数中,我需要将其放在全局范围内。