블로그가 몇 년이 지났고 특정 시점에 구텐베르크 편집기로 전환하면서 클래식 편집기 형식으로 게시된 오래된 글은 모두 남겨둔 경우 지금 한 번에 구텐베르크 블록으로 변환할 수 있습니다.
이 마이그레이션을 수행하면 SEO 및 성능 측면에서 이점을 얻을 수 있습니다. 이러한 이점은 이 글의 마지막에 설명되어 있습니다.
블록으로 변환 이 변환을 용이하게 하는 유일한 괜찮은 플러그인은 블록으로 변환입니다 . 설치하기만 하면 됩니다. 설정이나 관리자 영역이 없으며 그럴 필요도 없습니다.
이제 항목 목록을 열면 제목 오른쪽에 해당 항목이 클래식 편집기를 사용하여 게시되었는지 구텐베르크 블록 편집기를 사용하여 게시되었는지 알려주는 새 열이 표시됩니다. 하지만 정렬할 수 있는 방법은 없습니다.
각 글에 '클래식' 또는 '구텐베르크'를 표시하는 열을 오른쪽에 추가하는 기능을 사용하면 됩니다. 이런 식으로요:
// Añadir la columna personalizada en la lista de entradas que muestre si fueron publicadas con el editor Clásico o Gutenberg
function add_editor_type_column($columns) {
$columns['editor_type'] = 'Editor';
return $columns;
}
add_filter('manage_posts_columns', 'add_editor_type_column');
// Mostrar el contenido de la columna personalizada
function display_editor_type_column($column_name, $post_id) {
if ($column_name === 'editor_type') {
$content = get_post_field('post_content', $post_id);
if (strpos($content, '<!-- wp:') !== false) {
echo 'Gutenberg';
} else {
echo 'Clásico';
}
}
}
add_action('manage_posts_custom_column', 'display_editor_type_column', 10, 2);
// Hacer que la columna sea ordenable
function make_editor_type_column_sortable($columns) {
$columns['editor_type'] = 'editor_type';
return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'make_editor_type_column_sortable');
// Modificar la consulta para ordenar por el tipo de editor
function sort_posts_by_editor_type($query) {
if (!is_admin() || !$query->is_main_query()) {
return;
}
if ($query->get('orderby') === 'editor_type') {
$query->set('meta_key', '_editor_type');
$query->set('orderby', 'meta_value');
}
}
add_action('pre_get_posts', 'sort_posts_by_editor_type');
// Guardar el tipo de editor como metadato al guardar el post
function save_editor_type_metadata($post_id) {
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
$content = get_post_field('post_content', $post_id);
$editor_type = (strpos($content, '<!-- wp:') !== false) ? 'gutenberg' : 'classic';
update_post_meta($post_id, '_editor_type', $editor_type);
}
add_action('save_post', 'save_editor_type_metadata');
이 플러그인의 흥미로운 점은 "즉시" 변환된다는 점입니다. 즉, 글을 편집하면 편집기를 열면 자동으로 구텐베르크로 변환됩니다. 문제가 발생하면 이를 확인하고 저장하지 않고 종료하여 변경 사항을 삭제하고 변환 오류를 일으킨 것으로 의심되는 부분을 편집한 후 다시 시도할 수 있습니다.
수십 개의 글을 변환하는 데는 이 정도면 충분합니다. 매우 잘 작동하며 제가 테스트한 거의 모든 글을 성공적으로 변환했습니다. 블록으로 변환 은 기본적으로 사용자 정의 블록을 변환하지 않는다고 경고합니다.
대량 또는 일괄 변환 하지만 제 경우처럼 변환해야 할 글이 수백, 수천 개라면 어떻게 해야 할까요? 바로 이때 플러그인의 가장 유용한 기능이 작동합니다. WP-CLI를 사용하여 대량 변환을 할 수 있습니다. WP-CLI 사용법을 이미 알고 있다면 이 부분을 건너뛰고, 모르는 경우 이 링크로 이동하면 됩니다.
GitHub 페이지에서 사용할 수 있는 명령어 목록을 찾을 수 있습니다.
NOMBRE
wp convert-to-blocks start
DESCRIPCIÓN
Inicia una nueva Migración. El comando imprime la URL que debe abrirse en un navegador para conectarlo a la CLI de WP.
SYNOPSIS
wp convert-to-blocks start [--post_type=<post_type>] [--per_page=<per_page>] [--page=<page>] [--only=<only>] [--catalog] [--reset]
OPCIONES
[--post_type=<post_type>]
Lista opcional delimitada por comas de los tipos de entrada a migrar. Por defecto post,page
[--per_page=<per_page>]
Número opcional de posts a migrar por lote. Por defecto no hay límite. Combinar con --page para paginar.
[--page=<page>]
Número de página opcional desde el que iniciar la migración. Por defecto es 1.
[--only=<only>]
Lista opcional delimitada por comas de ID de post a migrar.
[--catalog]
Bandera opcional para migrar sólo las entradas etiquetadas del editor clásico. Requiere que el plugin Block Catalog esté presente y haya sido indexado.
[--reset]
Detiene cualquier migración en curso y restablece el estado de la migración.
NOMBRE
wp convert-to-blocks stop
DESCRIPCIÓN
Detiene la migración en curso si está activa.
NOMBRE
wp convert-to-blocks status
DESCRIPCIÓN
Imprime el estado de la migración en curso.
공유 호스팅을 사용 중이거나 변환 시 CPU 사용량이 많아 로딩 속도가 느려지는 것을 원하지 않는다면(변환만 하는 것이 아니라 모든 글을 하나씩 저장/게시해야 한다는 점을 명심하세요) 일괄 처리하는 것이 좋습니다.
저는 각 배치에 약 100개의 ID 블록을 추가하여 특정 수의 게시물을 변환하는 옵션을 선택했습니다.
에디션에서는 URL에 표시되므로 글의 ID를 확인하는 방법을 알고 있지만, 이제 클래식 편집기로 게시한 글의 모든 ID를 공백 없이 쉼표로 구분하여 추출해야 합니다.
이를 위한 기능도 있습니다.
// Función para obtener los IDs de posts creados con el editor clásico
function obtener_ids_posts_editor_clasico() {
global $wpdb;
// Consulta para obtener los IDs de los posts que NO contienen bloques de Gutenberg
$query = "
SELECT ID
FROM {$wpdb->posts}
WHERE post_content NOT LIKE '%<!-- wp:%'
AND post_status = 'publish'
AND post_type = 'post' -- Solo posts, excluye páginas y otros tipos
AND post_content != '' -- Excluye posts vacíos
AND post_title != '' -- Excluye posts sin título
AND post_name != '' -- Excluye posts sin slug válido
";
$results = $wpdb->get_col($query);
// Convierte el array de IDs en una cadena separada por comas
$ids_comma_separated = implode(',', $results);
return $ids_comma_separated;
}
// Shortcode para mostrar el listado de IDs y el número total de posts con el editor clásico
add_shortcode('listado_ids_clasico', function() {
// Obtener la lista de IDs
$ids_posts_clasico = obtener_ids_posts_editor_clasico();
// Contar el número total de IDs
$total_posts = count(explode(',', $ids_posts_clasico));
// Mostrar el contador y la lista de IDs
return 'Total de posts creados con el editor clásico: ' . $total_posts . '<br>IDs de posts: ' . $ids_posts_clasico;
});
Uso:
1. Copia el código en el archivo functions.php de tu tema o en un plugin personalizado.
2. Inserta el shortcode [listado_ids_clasico] en cualquier página o entrada de WordPress no hace falta que la publiques. Te bastará hacer una vista previa del borrador.
3. El shortcode mostrará el número total de posts creados con el editor clásico y una lista de sus IDs.
- Este código lista solo los posts publicados que no contienen bloques de Gutenberg.
- Excluye páginas, revisiones, posts vacíos, posts sin título y posts sin slug válido.
- Si necesitas incluir otros tipos de contenido (por ejemplo, páginas), cambia `post_type = 'post'` por `post_type IN ('post', 'page')`.
- Si quieres excluir otros tipos de contenido no deseado, agrega más condiciones a la consulta SQL.
그리고 이것이 당신이 얻을 수있는 것입니다 (* 개정판에는 총 금액에 대한 수치도 포함하도록 추가했습니다).
이제 원하는 만큼의 ID를 선택하고 원하는 만큼 일괄 변환할 수 있습니다.
루커스호스트에 WP-CLI가 설치되어 있으므로 cPanel에서 지팡이를 줄 수 있는 터미널을 준비했습니다.
WP 설치의 루트 경로가 열리고 연결됩니다.
cd public_html/staging
Enter
마지막으로 변환할 글의 ID와 함께 명령을 입력합니다. 예시:
wp convert-to-blocks start --only=3017,3100,3145,3281,3357,4121,4505,4564,4586,4623,4647,4665,4688,4706,4712,4727,4793,16019,50411,87386
Enter 키를 다시 누르면 프로세스를 시작하려면 새 창에서 열어야 하는 URL이 표시됩니다.
전환... 이제 작업이 완료될 때까지 기다렸다가 전환을 살펴보고 다듬고 다듬을 부분이 있는지 확인하기만 하면 됩니다.
SEO 및 성능 이점 여전히 클래식 편집기의 미니멀리즘에 충실한 사람들이 많지만 구텐베르크는 필사적으로 느린 속도이긴 하지만 출시 이후 많이 개선되었습니다. 구텐베르크는 이미 단점보다 장점이 더 많습니다.
SEO의 이점: 이러한 전환을 통해 하룻밤 사이에 사이트가 검색 결과 목록에서 상위권에 오를 것이라고 기대하지는 마세요. 하지만 모든 개선 사항이 합산됩니다.
콘텐츠 구조 개선: 구텐베르크에서는 블록(문단, 제목, 목록 등)을 사용하여 보다 구조화된 콘텐츠를 만들 수 있습니다. 검색 엔진이 콘텐츠의 계층 구조와 관련성을 더 쉽게 이해할 수 있습니다. 제목 최적화(H1, H2, H3 등): 제목을 추가하고 관리하기가 더 쉬워져 콘텐츠의 가독성과 구성이 개선됩니다. 더욱 최적화된 이미지: 구텐베르크에서는 이미지 블록에 직접 대체 속성, 제목, 설명을 추가할 수 있습니다. SEO를 위한 특정 블록 사용: Yoast SEO 또는 Rank Math와 같은 플러그인을 사용하는 경우 SEO를 개선하기 위한 특정 블록(예: FAQ 블록 또는 스키마 마크업)을 제공합니다. 더 많은 인터랙티브 콘텐츠: 대화형 블록(표, 버튼, 아코디언)은 사용자 경험을 개선하고 이탈률을 줄입니다. 클래식 편집기로 게시된 요소가 많은 긴 글은 CLS가 높고 속도도 느리기 때문에 색인이 나빠지거나 순위가 떨어지는 경향이 있습니다. 성능 이점: 더 깔끔하고 가벼워진 코드: 구텐베르크는 더 깔끔하고 시맨틱한 HTML을 생성하여 페이지 크기를 줄이고 로딩 시간을 개선합니다. 지연된 리소스 로딩: 일부 블록(예: 이미지)은 기본적으로 지연 로딩을 허용합니다. 단축 코드에 대한 의존도 감소: 구텐베르크에서는 많은 단축 코드를 보다 효율적인 네이티브 블록으로 대체할 수 있습니다. 표시되는 콘텐츠 최적화(스크롤 위): 스크롤 없이 페이지의 보이는 부분에 최적화된 콘텐츠를 쉽게 만들 수 있습니다. 필요한 플러그인 수 감소: 열, 표 또는 버튼과 같은 기능을 통합하여 플러그인 부하를 줄이세요. 추가 혜택:
더 나은 편집 환경: 보다 현대적이고 직관적인 편집 환경을 제공합니다. 최신 테마 및 플러그인과의 호환성: 많은 테마와 플러그인이 이미 구텐베르크에 최적화되어 있습니다.
퍼블리셔의 미래.
여기서는 잘 모르겠습니다. 구텐베르크는 워드프레스의 (유일한) 미래라고 생각하지만, 모든 템플릿이 FSE(전체 사이트 편집)인 것은 아니고 가장 인기 있는 템플릿 중 상당수가 FSE 버전을 출시하지 않았기 때문에 FSE (전체 사이트 편집)는 그다지 많지 않다고 생각합니다. 또한 직원들은 여전히 빌더로 Elementor 또는 Bricks를 사용하거나 지원 블록으로 GenerateBlocks 및/또는 Kadence를 사용하고 있습니다.