데이터베이스(DB)에서 워드프레스 특성 이미지 일괄 제거하기

Last Updated: 2024년 06월 22일 댓글

워드프레스 게시글에 지정된 모든 특성 이미지를 제거하고 싶은 경우 DB를 통해 일괄 삭제가 가능합니다. 실제 이미지는 삭제하지 않고 포스트에 설정된 특성 이미지 정보만을 제거하려는 경우 아래를 참고하세요.

데이터베이스(DB)에서 워드프레스 특성 이미지 일괄 제거하기

데이터베이스(DB)에서 워드프레스 특성 이미지를 일괄 제거하는 방법

워드프레스에서 FIFU 플러그인을 사용하면 첫 번째 이미지(또는 N번째 이미지)를 특성 이미지로 설정할 수 있습니다. 이 플러그인에서는 기존 특성 이미지는 변경하지 않지만, 원하는 경우 기존 특성 이미지를 덮어쓰기 하는 옵션을 활성화할 수 있습니다. 기존 특성 이미지를 무시하고 FIFU에서 첫 번째 또는 N번째 이미지를 특성 이미지로 설정하고 싶은 경우 "기존 추천 이미지/비디오 덮어쓰기" 옵션을 ON으로 설정하여 테스트해보시기 바랍니다.

하지만 어떤 이유로 인해 FIFU에서 지정한 특성 이미지가 반영되지 않는 경우가 있을 수 있습니다.

이런 경우 기존 특성 이미지 정보를 데이터베이스(Database)에서 제거하는 것을 고려할 수 있습니다. 모든 글에서 특성 이미지(대표 이미지)를 제거하고 싶은 경우 다음 phpMyAdmin 등 MySQL 클라이언트 툴을 통해 DB에 접속한 다음, 아래와 같은 쿼리를 실행할 수 있습니다.

DELETE FROM wp_postmeta WHERE meta_key = '_thumbnail_id';

이 쿼리는 데이터베이스에서 포스트의 특성 이미지들을 제거하지만 실제 이미지를 제거하지는 않습니다.

DB 작업은 되돌릴 수 없으므로 위의 쿼리를 실행하기 전에 반드시 백업하시기 바랍니다.

카페24를 이용하는 경우 phpMyAdmin을 설치하여 디비에 접속할 수 있습니다. 패스트코멧 등과 같이 cPaenl을 제공하는 환경에서는 cPanel에 로그인하여 phpMyAdmin 툴에 접근할 수 있습니다.

클라우드웨이즈(Cloudways)의 경우 Database Manager를 통해 디비에 접근할 수 있습니다.

위에 제시된 쿼리를 실행한 후에 캐시를 삭제하면 특성 이미지들이 일괄 제거될 것입니다.

DB에 접속할 수 없는 경우 다음 코드를 활성화된 테마(차일드 테마를 만들어 작업)의 함수 파일에 추가하여 테스트할 수 있습니다. 마찬가지로 데이터와 DB를 백업한 후에 시도하시기 바랍니다.

function auto_featured_image($post_id) {
    // Check if this is an auto-save routine. If it is, our form has not been submitted, so we don't want to do anything.
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }

    // Verify this is not a revision
    if (wp_is_post_revision($post_id)) {
        return;
    }

    // Check if the post has a thumbnail
    if (has_post_thumbnail($post_id)) {
        // Remove the existing featured image
        delete_post_thumbnail($post_id);
    }

    // Get the first image attachment
    $args = array(
        'post_parent' => $post_id,
        'post_type'   => 'attachment',
        'post_mime_type' => 'image',
        'numberposts' => 1,
        'order'       => 'ASC',
        'orderby'     => 'menu_order ID',
    );

    $attached_images = get_children($args);

    if ($attached_images) {
        // Set the first attached image as the featured image
        foreach ($attached_images as $attachment_id => $attachment) {
            set_post_thumbnail($post_id, $attachment_id);
            break; // We only need the first image
        }
    }
}

// Hook into the save post action
add_action('save_post', 'auto_featured_image');

// Hook into various publish post transitions
$publish_hooks = array(
    'draft_to_publish',
    'new_to_publish',
    'pending_to_publish',
    'future_to_publish'
);

foreach ($publish_hooks as $hook) {
    add_action($hook, 'auto_featured_image');
}

// Ensure the function runs on post load to cover other scenarios
add_action('the_post', 'auto_featured_image');

특성 이미지 숨기기

특성 이미지를 숨기고 싶은 경우 여러 가지 방법이 있습니다.

  1. 테마 옵션에서 숨기기
  2. CSS를 사용하여 숨기기
  3. 플러그인 사용하기

테마에서 특성 이미지를 숨기는 옵션을 제공하는 경우 테마 옵션을 통해 특성 이미지를 숨길 수 있습니다.

엘리멘터 등 페이지 빌더나 PostX 등과 같은 플러그인을 사용하여 포스트 리스트를 나열하는 경우에는 해당 플러그인에서 특성 이미지를 표시/미표시하는 옵션이 제공됩니다.

테마에 썸네일 이미지를 숨기는 옵션이 제공되지 않는 경우에는 CSS를 사용할 수 있습니다. 예를 들어, GeneratePress 무료 버전에서는 CSS를 사용하여 최신 글 등에서 썸네일을 숨길 수 있습니다. GP 테마에서 특성 이미지를 숨기는 자세한 방법을 다음 글에서 확인할 수 있습니다.

다른 방법으로 WP Hide Show Featured Image라는 플러그인을 사용할 수 있습니다. 이 플러그인을 사용하면 모든 포스트와 페이지에서 특성 이미지를 숨길 수 있습니다. 하지만 테스트해보니 최신 글 페이지 등에서는 썸네일이 그대로 표시되었습니다.

마치며

FIFU의 현재 버전(4.8.1)에서 이미지 이름에 한글이 포함될 경우 썸네일이 표시되지 않는 이슈가 있습니다. 이미지 이름에 한글 캐릭터가 포함되어 있고 썸네일이 제대로 표시되지 않는 경우, FIFU의 차기 버전에서 이 문제가 수정된다고 하니 조금만 기다리면 업데이트가 나올 것입니다.

워드프레스 또는 웹호스팅 관련 문제로 어려움을 겪는 경우 여기에서 서비스(유료)를 의뢰하실 수 있습니다.

참고


댓글 남기기

Leave a Comment

카카오톡 상담 카톡 서비스 상담