我创建文件名custom.php
如下所示:
class customClass{
function dothisfunction( $mobiles , $message ){
//use parameters
}
}
在我的
function.php
文件I添加以下代码:
$number = \'09112443986\';
$mymsg = \'nadia is testing\';
$myClass = new customClass();
add_action( \'publish_post\', array( $myClass ,\'dothisfunction\', $number, $mymsg ) );
但它返回错误,错误是:
PHP Warning: call\\u user\\u func\\u array()要求参数1是有效的回调,数组在C:\\xampp\\htdocs\\wp includes\\class wp hook中必须正好有两个成员。php在线288
我如何解决它?有人能帮我吗?
最合适的回答,由SO网友:gdarko 整理而成
这个publish_post
post接受两个参数第一个是$ID
第二个是$post
实例(See codex). 我在下面修改了您的代码。
您的类几乎完全相同,只是重命名了函数的参数,以免造成混淆。
class customClass{
function dothisfunction( $ID, $post ){
echo "something";
}
}
不需要
$number
和
$mymsg
因为您只需要指定实例和要使用的实例方法。
$myClass = new customClass();
add_action( \'publish_post\', array( $myClass ,\'dothisfunction\' ), 10, 2 );
此外,还应指定要传递给的参数数量
dothisfunction
在里面
add_action 作为第四个参数。
SO网友:nmr
钩住你的方法dothisfunction
到操作publish_post
, 您应该使用add_action()
这样做:
$myClass = new customClass();
add_action( \'publish_post\', array( $myClass, \'dothisfunction\' ), 10, 2 );
函数接受的参数数量在的第4个参数中指定
add_action()
.
但是,此数目不能大于传入的参数数目do_action()
, 因为它是do_action()
那个decides how many and what arguments 将传递给连接到特定动作挂钩的函数。
有关您可以阅读的操作的更多信息here.