php - 替换 WordPress 管理员中的 user-edit.php 页面

标签 php wordpress wordpress-theming custom-wordpress-pages

我需要替换 WordPress 管理界面中用于 user-edit.php View 的页面模板。

我不想更改任何核心文件,但是我想创建自己的 user-edit.php 来调用。

到目前为止,我已经尝试创建 user-edit.php 文件并将其放在我的子主题中。

这可以通过自定义插件完成吗?

最佳答案

WordPress 管理页面并没有像主题那样真正使用模板。因此,实际上并没有可以替换的模板。

话虽如此,这里是您完成替换默认 WordPress user-edit.php 页面的选项。

1)【蛮力法】直上更换核心wp-admin/user-edit.php用你自己的文件。我知道您已经说过您不想替换核心文件;我只是为出现在这里的其他人列出这个。显然,这并不理想,因为您的文件会在您更新 WordPress 时被覆盖。

2) [服务器重定向方法] 您可以在站点的.htaccess 中添加适当的条目文件以重定向对 https://yourdomain.tld/wp-admin/user-edit.php 的调用到您的新页面/文件。也不理想,因为如果您的站点切换到没有替换文件的新主题,则该重定向链接将被破坏。

3) [附加方法] 保留现有的核心/默认用户菜单,只需添加您自己的管理菜单(通过 add_menu_page )以包含您的新页面。然后,只需知道您只需要使用该新菜单而不是“用户”菜单即可。更好,但也不理想,因为其他管理页面上指向 user-edit.php 的任何链接仍会指向那里并将管理员用户带到旧/核心页面。

4) 【php拦截方法】拦截对wp-admin/user-edit.php的调用在您的主题的 php 代码中并加载您的替换文件。这可能是最好的方法,虽然不是最容易实现的。而且您必须确保您的替换页面仍然允许任何插件正常运行,这些插件也可能使用用户编辑页面过滤器和 Hook 。

完成#4 [php 拦截]:

第一件事核心user-edit.php文件确实是加载 wp-admin/admin.php .该文件加载所有相关的管理内容并最终将控制权交还给user-edit.php。 .但是,在此之前,它会触发操作 "load-user-edit.php"
因此,在主题的 functions.php 文件中,使用这样的函数来拦截请求并重定向到您的文件:

function scottfive_override_user_edit(){
    require_once( get_template_directory() . '/myadminfiles/user-edit-replacement.php' );
    die();
}
add_action( 'load-user-edit.php', 'scottfive_override_user_edit', 1 );

请注意,此方法会替换整个文件及其所有功能和安全性。我建议查看原始核心 user-edit.php 并复制身份验证/授权代码,以确保您的文件至少与原始文件一样安全。

快乐编码! :D

关于php - 替换 WordPress 管理员中的 user-edit.php 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48016162/

相关文章:

php - 消息 : Configured database connection is persistent. 中止

php - 解析错误 : syntax error, 意外 '[' & functions_main.php 在第 1114 行

php - 如何在 woocommerce cart.php 中启用更新购物车按钮?

css - wordpress网站在IE中显示错误

html - 动态图像包装器的固定大小

php - 如何将第二列和第二列包装在循环内?

php - 来自 WordPress $wpdb->get_results 数组的自定义 JSON 数组

php - 什么时候在快速结账 paypal api 中访问取消 url?

javascript - 单击时显示和隐藏

wordpress - 如何显示菜单树的一部分?