Wordpress 오류 "이 게시물에 파일을 첨부할 권한이 없습니다"
관리자 이외의 사용자가 미디어를 업로드하면 다음 오류가 발생합니다.
확인 사항:
- wp-content/uploads 및 모든 서브폴더는 권한 755를 가집니다.
media_upload에 대해 테스트 사용자(이 오류가 발생하는 사용자)의 핵심 기능과 커스텀이 yes로 설정되어 있습니다.다음 이미지를 참조하십시오.
모든 플러그인을 비활성화해도 문제는 해결되지 않았다.
- 제가 알기로는, 사용자들은 지난 주 초에 이미지를 업로드 할 수 있었습니다.그 이후로 코드는 변경되지 않았습니다.
비슷한 문제가 있었던 사람이 있다면 제안해 드리겠습니다.감사해요.
업데이트 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
'programing' 카테고리의 다른 글
Wordpress 플러그인 설치: 디렉터리를 만들 수 없습니다. (0) | 2023.03.15 |
---|---|
Angular에서 현재 스코프 돔 요소를 얻는 방법JS 컨트롤러? (0) | 2023.03.15 |
표 셀의 맨 위에 이미지 정렬 (0) | 2023.03.15 |
Oracle - TO_CHAR로 변환할 때 선두 0이 사라지는 이유는 무엇입니까? (0) | 2023.03.15 |
Post name permalink HTTP 404 (0) | 2023.03.15 |