我有一个干净的Wordpress安装,没有安装任何额外的插件(仅用于测试目的)。
我创建了一个测试插件,并声明了以下类:
<?php
defined( \'ABSPATH\' ) or die( \'No script kiddies please!\' );
class Test_Plugin
{
public function __construct()
{
add_action(\'show_user_profile\', array($this,\'add_user_profile_inputs\'));
add_action(\'edit_user_profile\', array($this,\'add_user_profile_inputs\'));
}
public function add_user_profile_inputs( $user )
{
?>
<h3>New input fields area</h3>
<?php
}
}
?>
此代码的问题是挂钩不会触发。当我导航到编辑用户或您的个人资料页面时,没有任何更改。
如果我在类外编写代码,钩子将启动,编辑用户和您的配置文件页面将随着新文本的添加而更改:
<?php
defined( \'ABSPATH\' ) or die( \'No script kiddies please!\' );
add_action(\'show_user_profile\', \'add_user_profile_inputs\');
add_action(\'edit_user_profile\', \'add_user_profile_inputs\');
function add_user_profile_inputs( $user )
{
?>
<h3>New input fields area</h3>
<?php
}
?>
我不明白为什么,如果有人能解释一下的话。我想把一切都留在课堂上。这可能吗?如何做到这一点?这种行为是否适用于其他挂钩?
非常感谢。