如何允许未登录WP系统的用户上传到媒体库?

时间:2017-06-09 作者:ClodClod91

我现在卡住了。对于我的项目,我必须创建登录名,而不是使用WP用户系统,而是使用另一个系统。

现在,当我登录系统API时,我创建了一些cookie,但显然我没有为登录的用户创建wp cookie。因此,我想允许用户使用WP的媒体库上传(link of WP codex) 一些文件,但不起作用。

我还编辑了(临时核心wordpress更改)admin ajax。php,用于在用户未登录的情况下强制创建帖子附件:

if ( is_user_logged_in() ) {    
    do_action( \'wp_ajax_\' . $_REQUEST[\'action\'] );
} else {
   do_action( \'wp_ajax_\' . $_REQUEST[\'action\'] );
 }
但是异步上传。php的响应是302,我不知道如何继续。

UPDATE:
此用户的问题相同:click here

我尝试使用wp\\u ajax\\u my\\u action和wp\\u ajax\\u nopriv\\u myaction,但没有任何改变。我的需要是允许未登录WP的用户上载附件,并使用其ID作者分配此附件(例如,12345),因为每个用户只能看到您的媒体(我将使用pre\\u get\\u posts and yet work)。

2 个回复
SO网友:scott

首先,您不想编辑核心WP文件,因为当有更新时,您的更改将消失。这就是为什么鼓励你创建儿童主题。

第二,你可能想细读一下Codex page 在AJAX上。请注意,它显示了如何处理这两类用户(已登录和未登录):

add_action( \'wp_ajax_my_action\', \'my_action\' );
add_action( \'wp_ajax_nopriv_my_action\', \'my_action\' );
Themy_action 该函数将放在您的主题文件中(当我在处理我的主题文件时,我创建了自己的插件来处理AJAX)。

希望这会让你走上正确的道路。

SO网友:Farhan Ahmed

我也面临着同样的问题,最终找到了解决办法。。作为非登录用户,没有任何角色。。如果我们创建一个用户角色并为每个访问者分配一个角色,我们就可以解决上载文件的问题,因为上载文件是我们可以添加到用户角色的功能。。。

我尝试了以下方法。。。

add_role( \'frontend_editor\',\'Front-End Editor\', array( \'upload_files\' => true) );

if ( is_user_logged_in() ) {    
    $current_user = wp_get_current_user();
    $current_user->add_role(\'frontend_editor\');
}
让它发挥作用。php对我来说很有用。

结束

相关推荐

执行AJAX请求总是输出0

我正在尝试从我的主题中执行ajax请求header.php 文件我读到我必须使用admin-ajax.php 文件来实现这一点。所以我找了一些例子this 一中的我的代码header.php 文件如下所示:<script> $(document).ready(function(){ $(\'.test a\').click(function(){ var className = $(this).attr(\'class\');