替换 WordPress 管理中的 user-edit.php 页面
Replace user-edit.php page within WordPress admin
我需要在 WordPress 管理界面中替换用于 user-edit.php 视图的页面模板。
我不想更改任何核心文件,但我想创建自己的用户 -edit.php 以供调用。
到目前为止,我已尝试创建 user-edit.php 文件并将其放入我的子主题中。
这可以用自定义插件来完成吗?
WordPress 管理页面并不像主题那样真正使用模板。所以,没有真正的模板可以替换。
也就是说,这里是您完成替换默认 WordPress 用户 edit.php 页面的选项。
1) [暴力法] 直接用你自己的替换核心 wp-admin/user-edit.php
文件。我知道您已经说过您不想替换核心文件;我只是为出现在这里的其他人列出这个。显然,这并不理想,因为每当您更新 WordPress 时,您的文件都会被覆盖。
2) [服务器重定向方法] 您可以在站点的 .htaccess
文件中添加适当的条目,以将对 https://yourdomain.tld/wp-admin/user-edit.php
的调用重定向到新的 page/file。也不理想,因为如果您的网站切换到没有替换文件的新主题,则重定向 link 将被破坏。
3) [添加方法] 保留现有的 core/default 用户菜单,只需添加您自己的管理菜单(通过 add_menu_page
)以包含您的新页面。然后,只需知道您只需要使用那个新菜单而不是用户菜单即可。更好,但也不理想,因为其他管理页面上指向 user-edit.php 的任何 link 仍会指向那里并将管理员用户带到 old/core 页面。
4) [php 拦截方法] 在主题的 php 代码中拦截对 wp-admin/user-edit.php
的调用,并改为加载替换文件。这可能是最好的方法,尽管不是最容易实现的。并且您必须确保您的替换页面仍然允许任何插件正常运行,这些插件也可能使用用户编辑页面过滤器和挂钩。
完成#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 );
请注意,此方法会替换整个文件及其所有功能和安全性。我建议查看原始核心用户-edit.php 并复制 authentication/authorization 代码以确保您的文件至少与原始文件一样安全。
编码愉快! :D
我需要在 WordPress 管理界面中替换用于 user-edit.php 视图的页面模板。
我不想更改任何核心文件,但我想创建自己的用户 -edit.php 以供调用。
到目前为止,我已尝试创建 user-edit.php 文件并将其放入我的子主题中。
这可以用自定义插件来完成吗?
WordPress 管理页面并不像主题那样真正使用模板。所以,没有真正的模板可以替换。
也就是说,这里是您完成替换默认 WordPress 用户 edit.php 页面的选项。
1) [暴力法] 直接用你自己的替换核心 wp-admin/user-edit.php
文件。我知道您已经说过您不想替换核心文件;我只是为出现在这里的其他人列出这个。显然,这并不理想,因为每当您更新 WordPress 时,您的文件都会被覆盖。
2) [服务器重定向方法] 您可以在站点的 .htaccess
文件中添加适当的条目,以将对 https://yourdomain.tld/wp-admin/user-edit.php
的调用重定向到新的 page/file。也不理想,因为如果您的网站切换到没有替换文件的新主题,则重定向 link 将被破坏。
3) [添加方法] 保留现有的 core/default 用户菜单,只需添加您自己的管理菜单(通过 add_menu_page
)以包含您的新页面。然后,只需知道您只需要使用那个新菜单而不是用户菜单即可。更好,但也不理想,因为其他管理页面上指向 user-edit.php 的任何 link 仍会指向那里并将管理员用户带到 old/core 页面。
4) [php 拦截方法] 在主题的 php 代码中拦截对 wp-admin/user-edit.php
的调用,并改为加载替换文件。这可能是最好的方法,尽管不是最容易实现的。并且您必须确保您的替换页面仍然允许任何插件正常运行,这些插件也可能使用用户编辑页面过滤器和挂钩。
完成#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 );
请注意,此方法会替换整个文件及其所有功能和安全性。我建议查看原始核心用户-edit.php 并复制 authentication/authorization 代码以确保您的文件至少与原始文件一样安全。
编码愉快! :D