Wordpress wp_delete_attachment 파일을 미리 정의된 사용자 지정 폴더에서 삭제하도록 합니다.
고객이 표준 Wordpress 업로드 폴더(wp-content/upload-assets) 이외의 폴더에 파일을 업로드할 수 있는 커스텀 투고 타입을 작성했습니다.이 파일들은 표준 wp-content/uploads 폴더와는 별도로 처리되어야 하며 이것이 우리가 사용할 수 없는 이유입니다.
define( 'UPLOADS', 'mycustomfolder' );
wp-config.displays에 포함되어 있습니다.
대신 업로드 폴더를 일시적으로 wp-content/upload-assets로 변경할 때 사용합니다.
add_filter('upload_dir', 'my_upload_dir');
$uploaded_file = wp_handle_upload($_FILES['xxxx_image'], $upload_overrides);
remove_filter('upload_dir', 'my_upload_dir');
특정 게시물에서 모든 첨부 파일을 삭제하기 위해 사용합니다.
add_filter('upload_dir', 'my_upload_dir');
$attachments = get_posts( array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'post_status' => 'any',
'post_parent' => $pid
) );
foreach ( $attachments as $attachment ) {
if ( false === wp_delete_attachment( $attachment->ID, true ) ) {
echo 'Attachment could not be deleted.';
}
}
remove_filter('upload_dir', 'my_upload_dir');
wp_delete_medition도 디스크에서 모든 관련 파일을 삭제해야 하지만 파일이 커스텀 폴더(wp-content/medule)에 있기 때문에 작동하지 않습니다.
my_upload_dir 함수의 코드는 다음과 같습니다.
function my_upload_dir($upload) {
$upload['subdir'] = '';
$upload['basedir'] = WP_CONTENT_DIR;
$upload['baseurl'] = WP_CONTENT_URL;
$upload['path'] = $upload['basedir'] . '/upload-assets';
$upload['url'] = $upload['baseurl'] . '/upload-assets';
return $upload;
}
커스텀 wp-content/upload-assets 폴더에 있는 파일을 wp_delete_attachment로 삭제하려면 어떻게 해야 합니까?
안녕하세요 파일을 삭제하려면 이 방법을 사용할 수 있지만 첨부 파일과 관련된 모든 게시 메타 필드, 분류법, 주석 등이 제거되지는 않습니다.
도움이 되었으면 좋겠다
foreach ( $attachments as $attachment ) {
if ( false === wp_delete_attachment( $attachment->ID, true ) ) {
$file = get_attached_file( $attachment->ID );
$file = str_replace( "uploads", "upload-assets", $file);
wp_delete_file( $file );
}
}
이 코드를 테스트하지 않았지만 작동하기를 바랍니다.
현재 질문의 도메인에 머무르면 "get_attached_file" 필터를 사용하여 삭제할 파일의 경로를 가져오기 위해 사용되는 파일 경로 문자열을 직접 변경할 수 있습니다.특히 이 기능을 기능에 추가합니다.php
function sr_update_uploads_directory( $file )
{
return str_replace( "uploads", "upload-assets", $file) // Change path to upload-assets from uploads
}
add_filter( 'get_attached_file', 'sr_update_uploads_directory' );
지금은 테스트할 시간이 없습니다.그러니 양해 부탁드립니다.도움이 됐으면 좋겠다.:)
언급URL : https://stackoverflow.com/questions/38117115/make-wordpress-wp-delete-attachment-delete-files-from-a-pre-defined-custom-folde
'programing' 카테고리의 다른 글
"TypeError: process.getuid가 함수가 아닙니다"를 해결하는 방법 (0) | 2023.04.04 |
---|---|
Angular를 적용하는 방법ng-class에 의해 설정된 클래스에 기반한 JS 디렉티브? (0) | 2023.04.04 |
Angular.js 및 HTML5 날짜 입력 값 -- Firefox가 날짜 입력에 읽을 수 있는 날짜 값을 표시하도록 하려면 어떻게 해야 합니까? (0) | 2023.04.04 |
스프링 부트 - 초기 데이터 로드 중 (0) | 2023.04.04 |
json을 객체 루비로 구문 분석 (0) | 2023.04.04 |