在Wordpress中挂钩

时间:2017-11-08 02:49:08

标签: wordpress hook

我用自己的加密密码修改wp_hash_password和wp_check_password,我想现在使用hook。这是为了确保当我的wordpress更新最新版本时,我的wp_hash_password和pluggable.php中的wp_check_password仍然是我自己的密码加密,钩子应该添加在哪里?在互联网上看,有人说放在user.php中,有人说放在主题中的function.php中。如果谁知道,请告诉我答案。

2 个答案:

答案 0 :(得分:2)

首先加载插件,然后加载pluggable.php,最后加载主题。随后,您需要创建一个插件并将可插入函数代码放在那里,否则您的自定义代码将无法加载。创建一个名为custom_wp_password_override.php的文件或任何您想要标记的文件,并将其放入插件的文件夹中,添加您自己的自定义功能代码。您永远不应更新诸如user.php之类的核心文件,因为升级WordPress时会覆盖这些文件。

<?php
/*
Plugin Name: Custom WordPress Passwords
Plugin URI: http://localhost
Description: Override wordpress pluggable password functions.
Version: 1.0.0
Author: Your Name
Author URI: http://locahost
Text Domain: custom-wp-passwords
*/

if ( !function_exists('wp_check_password') ) :
    function wp_check_password($password, $hash, $user_id = '') {
        // Your custom code in here
    }
endif;

if ( !function_exists('wp_hash_password') ) :
    function wp_hash_password($password) {
        // Your custom code here
    }
endif;

?>

答案 1 :(得分:0)

因此,我知道进入WordPress开发时的第一件事就是不要编辑两个文件夹中的任何文件:wp-include和wp-admin。或者,当您将WordPress更新为较新版本时,您将失去所有编辑功能。

回到你的问题,如果您认为将来不会改变主题,请将您的代码放在子主题的functions.php中。是的,当您更新父主题时,子主题不会受到影响。

我认为,最适合您的解决方案是创建一个简单的WordPress插件,将您的代码放入其中并激活该插件。因此,即使更新WordPress核心/主题/其他插件,您的加密也不会丢失。

<?php
/*
Plugin Name: WP Custom Plugins
Plugin URI:  http://link to your plugin homepage
Description: This plugin changes WordPress hashing password encryption.
Version:     1.0
Author:      Someone
Author URI:  http://link to your website
License:     GPL2 etc
License URI: https://link to your plugin license


/* Your code goes below here */