我们如何自定义Wordpress代码,以便客户可以成功上传图像,但看不到整个媒体库(他们只能在媒体库中看到他们上传的内容——或者在媒体库中根本看不到任何内容,他们只能上传到ACF 场)?
这是一个非常自定义的网站,使用 ACF 字段和 ACF 图像裁剪来上传图像。
我们已经测试了客户帐户,如果不添加,我们可以看到所有媒体文件图像 下面的代码成功阻止用户查看媒体库文件。但是,当我们尝试通过 ACF 字段上传图像(与 ACF Crop 一致)时,我们仍然会收到附加的错误消息。
当我们进一步测试时,当我们尝试从客户帐户上传媒体时,我们会在控制台中收到附加的错误消息 - 跨源时严格源(浏览器错误)
但是,对于管理员来说,它可以正常工作,没有任何问题。
我们是否缺少权限?代码?两者都?
再次,此代码成功阻止用户查看媒体库文件,但我们仍然收到附加的错误消息。
// Limit media library access
add_filter( 'ajax_query_attachments_args', 'wpb_show_current_user_attachments' );
function wpb_show_current_user_attachments( $query ) {
$user_id = get_current_user_id();
if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts
') ) {
$query['author'] = $user_id;
}
return $query;
}
我们也尝试了这个代码(以及上面的代码),同样的错误消息,没有进一步的线索
add_action('add_attachment', 'wpb_allow_cors_for_image_upload');
function wpb_allow_cors_for_image_upload() {
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization');
}
我们更改了上传文件的权限,但它不起作用。
进一步研究的其他代码不起作用。
我们已经让我们的服务器提供商彻底检查了他们的终端,他们已经确认这不是他们的服务器的问题。
帮助。
我在upwork上看到了这篇文章。我最近开发了一个插件,差不多就是你想要的。你可以在我的 GitHub 上查看 https://github.com/moonbyt3/uploads-for-registered-users
插件只是一个耦合到 WordPress 挂钩的文件,它需要主题本身之外的特定于您的网站的功能,该功能应该保存您的布局、样式和交互。这与您获取所有这些代码并将其包含到您的主题的 functions.pho 中是一样的。 不管怎样,如果你认为这有帮助,我愿意合作,你可以在 GitHub 上找到我的邮件。