Mic*_* M. 2 php wordpress wordpress-theming custom-wordpress-pages
我需要替换 WordPress 管理界面中用于 user-edit.php 视图的页面模板。
我不想更改任何核心文件,但是我想创建我自己的 user-edit.php 来代替调用。
到目前为止,我已经尝试创建 user-edit.php 文件并将其放置在我的子主题中。
这可以通过自定义插件完成吗?
小智 7
WordPress 管理页面并没有像主题那样真正使用模板。所以,没有真正的模板可以替换。
话虽如此,以下是您完成替换默认 WordPress user-edit.php 页面的选项。
1)【蛮力法】直接wp-admin/user-edit.php用自己的core文件替换。我知道你已经说过你不想替换核心文件;我只是为其他出现在这里的人列出这个。显然,这并不理想,因为每次更新 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代码中的调用并加载替换文件。这可能是最好的方法,虽然不是最容易实现的。而且您必须确保您的替换页面仍然允许任何插件正常运行,这些插件也可能使用用户编辑页面过滤器和挂钩。
完成#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 );
Run Code Online (Sandbox Code Playgroud)
请注意,此方法会替换整个文件及其所有功能和安全性。我建议查看原始核心 user-edit.php 并复制身份验证/授权代码,以确保您的文件至少与原始文件一样安全。
快乐编码!:D
| 归档时间: |
|
| 查看次数: |
1940 次 |
| 最近记录: |