programing

Wordpress 오류 "이 게시물에 파일을 첨부할 권한이 없습니다"

copyandpastes 2023. 3. 15. 23:29
반응형

Wordpress 오류 "이 게시물에 파일을 첨부할 권한이 없습니다"

설정 > 미디어관리자 이외의 사용자가 미디어를 업로드하면 다음 오류가 발생합니다.

확인 사항:

  1. wp-content/uploads 및 모든 서브폴더는 권한 755를 가집니다.
  2. media_upload에 대해 테스트 사용자(이 오류가 발생하는 사용자)의 핵심 기능과 커스텀이 yes로 설정되어 있습니다.다음 이미지를 참조하십시오.

  3. 모든 플러그인을 비활성화해도 문제는 해결되지 않았다.

  4. 제가 알기로는, 사용자들은 지난 주 초에 이미지를 업로드 할 수 있었습니다.그 이후로 코드는 변경되지 않았습니다.

비슷한 문제가 있었던 사람이 있다면 제안해 드리겠습니다.감사해요.


업데이트 from wp-admin/includes/ajax-action.php, 다음 부분을 삭제했습니다.

if ( isset( $_REQUEST['post_id'] ) ) {
    $post_id = $_REQUEST['post_id'];
    if ( ! current_user_can( 'edit_post', $post_id ) ) {
        echo wp_json_encode( array(
            'success' => false,
            'data'    => array(
                'message'  => __( "You don't have permission to attach files     to this post." ),
                'filename' => $_FILES['async-upload']['name'],
            )
        ) );

        wp_die();
    }
    }

이것은 사용자의 능력을 확인하기 위한 체크 포인트일 뿐이라는 것은 알고 있습니다만, 이 부품을 떼어내는 것이 왜 문제 해결에 도움이 되었는지 완전히 이해할 수 없습니다.이제 테스트 사용자는 미디어를 업로드할 수 있습니다(이전에도 미디어 업로드가 성공했습니다). 권한 오류는 없으며 하단의 "Upload MEDIA" 버튼은 회색으로 표시되지 않으므로 정상적으로 업로드할 수 있습니다.감사해요.

코어 WP 코드 제거는 전혀 권장되지 않습니다!

이러한 에러의 원인은, 호스트 환경의 PHP 업로드 제한에 있는 경우가 많습니다.PHP 값을 변경하는 방법의 예를 참조하십시오: 최대 업로드 파일 크기 변경

그러나 투고 타입의 기능 스크린샷을 보면, 당신의 역할은 투고 편집조차 할 수 없는 것 같습니다.적어도 이 기능을 유효하게 합니다.edit_posts그리고 다른 포스트 관련 카파비틀리도 있을 겁니다.

참고로 Wordress의 역할과 기능을 이해하는 데 도움이 되는 표는 다음과 같습니다.기능과 역할 테이블

wp-admin/includes/ajax-action을 업데이트하기만 하면 됩니다.php 파일은 'edit_post' 대신 'edit_post'여야 합니다.

if ( isset( $_REQUEST['post_id'] ) ) {
$post_id = $_REQUEST['post_id'];
if ( ! current_user_can( 'edit_posts', $post_id ) ) {
    echo wp_json_encode( array(
        'success' => false,
        'data'    => array(
            'message'  => __( "You don't have permission to attach files     to this post." ),
            'filename' => $_FILES['async-upload']['name'],
        )
    ) );

    wp_die();
}
}

근본 원인에 따라 여러 가지 해결책이 있습니다.

역할이 손상되었을 때 효과가 있을 것 같은 해결책 중 하나는 WordPress 역할을 편집하는 플러그인을 설치하는 것입니다.당신에게 필요한 정확한 역할은 모르겠지만 이것들 중 하나라고 생각해요.방금 확인하셨기 때문에 이 이상일 수 있습니다.역할 편집 플러그인을 사용하셨나요?

이미지를 업로드하고 투고에 첨부하는 것은 투고를 편집하는 것이기 때문에 사용자는 edit_post가 필요할 것입니다.

unfiltered_upload 
upload_files 

다른 해결책은 PHP 코드가 허용되거나 PHP 코드에 액세스할 수 있는 경우 코드를 추가하는 것입니다.이를 PHP 파일(예를 들어 header.php (일시적으로))에 추가하여 실행합니다.

$user_role = 'author'; // Change user role here
$contributor = get_role($user_role);
$contributor->add_cap('upload_files');

그러면 작성자 역할이 파일을 업로드할 수 있습니다.

이 문제를 해결할 수 있는 세 번째 방법은 [설정]-> [미디어]에서 업로드 디렉토리의 풀 파일 경로를 추가하는 입니다.

질문 업데이트에서 언급했듯이, 파일에서 코드 세트를 제거했고, 그것은 나에게 효과가 있었습니다.어떻게 작동했는지 잘 모르기 때문에 아무에게도 이 솔루션을 추천하고 싶지 않지만, 만약 상황이 안 좋다면 시도해 볼 수 있을 것 같습니다.코드를 삭제했을 때 무엇이 바뀌었는지에 대해서는 아직 설명을 기다리고 있습니다.만약 당신이 워드프레스나 php 전문가이고 내가 한 일을 이해한다면 알려주세요.

언급URL : https://stackoverflow.com/questions/31885086/error-you-dont-have-permission-to-attach-files-to-this-post-on-wordpress

반응형