我需要替换WordPress管理界面中用于user-edit.php视图的页面模板。
我不想更改任何核心文件, 但是我想创建自己的user-edit.php来代替。
到目前为止, 我已经尝试创建user-edit.php文件并将其放置在我的子主题中。
可以使用自定义插件完成此操作吗?
#1WordPress管理页面实际上并未以与主题相同的方式使用模板。因此, 实际上并没有要替换的模板。
话虽如此, 这是你完成替换默认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拦截方法]在主题的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 );
请注意, 此方法将替换整个文件及其所有功能和安全性。建议你查看原始核心用户user.edit.php并复制身份验证/授权代码, 以确保你的文件至少与原始文件一样安全。
【在WordPress管理员中替换user-edit.php页面】编码愉快! :D
推荐阅读
- WordPress主题中的重置/刷新搜索表单按钮
- 在免费的wordpress主题中对section进行重新排序
- 在macOS的Safari上删除正文行右侧的不需要的白色填充
- 当容器= false时删除WordPress包装器Div失败
- Zabbix latest.php SQL注入漏洞(CVE-2016-10134)
- 基于STM32的IAP升级程序
- 路由基础之RIP的水平分割及触发更新
- Oracle Data Guard系列(单机环境基于拷贝文件方式搭建DG)
- python之uWSGI和WSGI