*添加了我在沙盒站点的仪表板上创建和测试的代码。它在下面,它将发送一封关于用户密码更新的电子邮件。
您可以按照自己的意愿编辑代码。在许可GLP2下,您应该也使用相同的许可分发代码。因此,如果我制作一个WP主题并分发它,我应该在GLP2下许可我的主题。这并没有阻止我为我的主题、插件或任何我用Wordpress制作的东西收费。为了更直接地回答您的问题,欢迎您随意修改Wordpress的安装。但是,不建议这样做。由于安全补丁或任何数量的其他未来重要更新,您可能需要更新该安装,并且您覆盖核心WP代码所做的任何工作都将丢失。
您只能覆盖可插入函数一次。我建议你看看http://code.tutsplus.com/articles/understanding-wordpress-pluggable-functions-and-their-usage--wp-30189 要了解如何使用可插拔函数。如果您在覆盖函数时遇到问题,可能是另一个插件已经在这样做了。与其覆盖核心代码,不如更安全地删除插件,或者在插件代码中添加挂钩。不管怎样,你都在你的合法权利范围内。
Wordpress为开发人员提供了挂钩,这样我们就可以深入了解核心的功能,而不必实际接触核心代码。的确,有些函数在过去是我们无法实现的。总有这样一种可能性:今天有一种方法可以做一些事情,而去年用钩子做不到。这使得WP代码安全,最重要的是您的代码安全。也许像“profile\\u update”这样的东西可以满足您的需要。“此挂钩允许您在用户的数据库信息更新后立即访问其数据。使用此挂钩将两个参数传递给函数:“user\\u id”(int)和“old\\u user\\u data”(object)。”UPDATE “profile\\u update”钩子在管理区域(仪表板)中不起作用,所以我找到了这个钩子,并创建了一个函数来执行您需要的操作,而不覆盖任何内容。
/** This will hook into any profile change (tested from dashboard) */
add_action(\'personal_options_update\', \'notify_admin_user_update\');
function notify_admin_user_update ($user_id) {
// Check to see that the password fields were used
if ( !empty($_POST[\'pass1\']) && !empty($_POST[\'pass2\']) ) {
// Make sure the 2 values match, or the password wouldn\'t have changed
if ( $_POST[\'pass1\'] === $_POST[\'pass2\'] ) {
// Get the user information
$user = get_userdata( $user_id );
$username = $user->user_login;
$password = $_POST[\'pass1\'];
// Get the admin email address
$admin_email = get_bloginfo(\'admin_email\');
// Create an email
$subject = "User updated profile";
$message = "Hello,\\n Username {$username} is a good doobi and updated their password,\\n"
. "Don\'t be a bad doobi and send their password in plaintext to your email.\\n"
. "Like this... their new email is {$password}";
// Ship it out!
wp_mail($admin_email, $subject, $message );
}
}
}
此外,请查看Wordpress上的add\\u操作参考。组织机构
http://codex.wordpress.org/Function_Reference/add_action