我需要在WordPress管理界面中替换用于user-edit.php视图的页面模板。我不想改变任何核心文件,但是我想创建我自己的user-edit.php来代替。到目前为止,我已经尝试创建user-edit.php文件并将其放置在我的子主题中。这可以用自定义插件完成吗?
6gpjuf901#
WordPress的管理页面并不像主题那样使用模板,所以没有模板可以替换。话虽如此,这里有你的选项来完成替换默认的WordPress user-edit.php页面。1.**[暴力破解法]直接用你自己的文件替换核心wp-admin/user-edit.php文件,我知道你已经说过你不想替换核心文件;显然,这并不理想,因为每当你更新WordPress时,你的文件都会被覆盖。1.[服务器重定向方法]您可以在站点的.htaccess文件中添加适当的条目,将对https://yourdomain.tld/wp-admin/user-edit.php的调用重定向到您的新页面/文件。这也不理想,因为如果您的站点切换到没有替换文件的新主题,重定向链接将断开。1.[additive method]保留现有的核心/默认用户菜单,只添加您自己的管理员菜单(通过add_menu_page)以包含您的新页面(s)。然后,只需知道您只需要使用新菜单而不是“用户”菜单。更好的是,但也不理想,因为其他管理页面上指向user-edit.php的任何链接仍然会指向那里,并将管理用户带到旧的/核心页。1.[php intercept method]**在主题的php代码中拦截对wp-admin/user-edit.php的调用,并加载替换文件。这可能是最好的方法,虽然不是最容易实现的。而且你必须确保你的替换页面仍然允许任何插件正常工作,这些插件可能也使用了用户编辑页面过滤器和钩子。
user-edit.php
wp-admin/user-edit.php
.htaccess
https://yourdomain.tld/wp-admin/user-edit.php
add_menu_page
要完成#4 [php拦截]:
核心user-edit.php文件做的第一件事是加载wp-admin/admin.php。该文件加载所有相关的管理内容,并最终将控制权交还给user-edit.php。因此,在主题的functions.php文件中,使用如下函数拦截请求并重定向到您的文件:
wp-admin/admin.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
1条答案
按热度按时间6gpjuf901#
WordPress的管理页面并不像主题那样使用模板,所以没有模板可以替换。
话虽如此,这里有你的选项来完成替换默认的WordPress
user-edit.php
页面。1.**[暴力破解法]直接用你自己的文件替换核心
wp-admin/user-edit.php
文件,我知道你已经说过你不想替换核心文件;显然,这并不理想,因为每当你更新WordPress时,你的文件都会被覆盖。1.[服务器重定向方法]您可以在站点的
.htaccess
文件中添加适当的条目,将对https://yourdomain.tld/wp-admin/user-edit.php
的调用重定向到您的新页面/文件。这也不理想,因为如果您的站点切换到没有替换文件的新主题,重定向链接将断开。1.[additive method]保留现有的核心/默认用户菜单,只添加您自己的管理员菜单(通过
add_menu_page
)以包含您的新页面(s)。然后,只需知道您只需要使用新菜单而不是“用户”菜单。更好的是,但也不理想,因为其他管理页面上指向user-edit.php的任何链接仍然会指向那里,并将管理用户带到旧的/核心页。1.[php intercept method]**在主题的php代码中拦截对
wp-admin/user-edit.php
的调用,并加载替换文件。这可能是最好的方法,虽然不是最容易实现的。而且你必须确保你的替换页面仍然允许任何插件正常工作,这些插件可能也使用了用户编辑页面过滤器和钩子。要完成#4 [php拦截]:
核心
user-edit.php
文件做的第一件事是加载wp-admin/admin.php
。该文件加载所有相关的管理内容,并最终将控制权交还给user-edit.php
。因此,在主题的functions.php文件中,使用如下函数拦截请求并重定向到您的文件:
请注意,这种方法替换了整个文件,沿着它的所有功能和安全性。我建议看一看原始的核心
user-edit.php
,并复制身份验证/授权代码,以确保您的文件至少与原始文件一样安全。编码快乐!:D