如何在使用插件/主题编辑器时执行操作?

时间:2019-03-18 作者:wowest

我正在尝试记录大量WP活动以创建审计跟踪。我想完全禁用插件和主题编辑器,但这不是一个选项。这些函数的可插拔性似乎很弱,我能看到的最佳选择是监听nonce验证并过滤所有这些函数。有没有人知道一种替代的、看起来不那么脆弱的方法,即每次插件或主题编辑器保存文件时运行一点代码?

1 个回复
最合适的回答,由SO网友:mrben522 整理而成

在主题或插件更新上运行的ajax操作是edit-theme-plugin-file 因此,您应该能够通过在wp_ajax_edit-theme-plugin-file

add_action(\'wp_ajax_edit-theme-plugin-file\', \'log_cowboy_coders\');

function log_cowboy_coders() {
    $user = get_current_user_id();
    if (!empty($__POST[\'theme\'])) {
        // Log that someone is editing a theme
    } else if (!empty($__POST[\'plugin\'])) {
        //log that someone is editing a plugin
    }
    if (!empty($__POST[\'file\'])) {
        //log what file they are editing
    }
}
该文件的全部更新内容也包含在POST数据中($__POST[\'newcontent\']) 因此,如果在默认ajax操作运行之前运行函数,则可能会获得原始内容并保存两者之间的差异。

相关推荐

OOP development and hooks

我目前正在为Wordpress编写我的第一个OOP插件。为了帮助我找到一点结构,a boiler plate 这为我奠定了基础。在里面Main.php 有一种方法可以为管理员加载JS和CSS资产:/** * Register all of the hooks related to the admin area functionality * of the plugin. * * @since 0.1.0 * @access private