我试图制作条件来过滤upload_dir(),但仅当用户在前端时,如果用户在后端创建新帖子或者我不想过滤它检查上传到Wordpress或上传新媒体的媒体。我目前正在使用is_admin()条件,但是查看前端商店页面的管理员用户不会看到它被过滤。
我之所以进行过滤是因为当前模板使用upload_dir来获取产品图片,我知道不建议使用upload_dir,但我无法对其进行修改。这是我的代码:
cmd2
答案 0 :(得分:1)
is_admin
应该可以正常工作,因为:
"当前请求是否针对管理界面页面。"
https://developer.wordpress.org/reference/functions/is_admin/
答案 1 :(得分:0)
如果前端使用AJAX上传媒体,那么is_admin()将无效,因为在WP Admin上下文中执行了AJAX请求。来自https://codex.wordpress.org/AJAX_in_Plugins:
注2:前端和后端Ajax请求都使用admin-ajax.php,因此is_admin()将始终在您的操作处理代码中返回true。
但是,您可以使用HTTP Referer - $ _SERVER [' HTTP_REFERER'] - 来了解发送AJAX请求的页面。您应该能够确定该页面是前端还是后端页面。后端页面的路径中包含wp-admin,例如http://xxx.yyy.zzz/wp-admin/upload.php,http://xxx.yyy.zzz/wp-admin/post.php?post=13239&action=edit