플러그인이 없는 게시물의 카테고리를 일괄 선택 해제하는 방법

게시 됨: 2020-10-05

"카테고리"는 WordPress의 기본 분류입니다. 운영자는 카테고리를 사용하여 블로그 게시물을 다른 섹션으로 정렬하고 그룹화할 수 있습니다. 카테고리는 방문자가 사이트를 더 빨리 탐색하는 데 도움이 될 뿐만 아니라 웹사이트의 주제를 알 수 있도록 도와줍니다. 웹사이트 운영자는 WordPress 관리자 패널을 사용하여 카테고리 및 게시물에 대한 기본 작업을 구현할 수 있을 뿐만 아니라 WordPress 플러그인을 사용하여 다양한 방식으로 게시물을 조작할 수 있습니다.

목차 숨기기
  1. 1. WordPress가 클라이언트의 웹 요청을 처리하는 방법을 이해합니까?
  2. 2. WordPress 게시물의 대량 조작을 위한 중요 테이블
  3. 3. 범주에서 다른 범주로 모든 게시물 이동 – SQL 명령 사용
    1. 3.1. 특정 카테고리에 속하는 모든 게시물의 ID 목록 가져오기
    2. 3.2. 새 카테고리의 ID 가져오기
    3. 3.3. 주어진 ID 목록으로 게시물 업데이트
  4. 4. 마지막 말

그러나 WordPress 사이트용 플러그인을 남용하면 잠재적인 성능 문제와 보안 문제가 발생할 수 있으므로 옵션이 되어서는 안 됩니다. 이 기사에서는 플러그인을 사용하지 않고 게시물의 카테고리를 일괄 선택 해제하는 방법에 대해 알아보겠습니다.

WordPress가 클라이언트의 웹 요청을 처리하는 방법을 이해합니까?

웹 서버가 클라이언트의 요청을 처리하는 방법을 이해하는 것은 WordPress 사이트를 조작하는 데 필요합니다. 세부 작업에는 카테고리의 게시물 일괄 선택 해제가 포함됩니다.

일반적인 웹 서버는 LAMP 스택(Linux – Apache – MySQL/MariaDB – PHP)입니다. 다른 동등한 개념은 다른 웹 서버 플랫폼에서 찾을 수 있습니다.

게시물을 일괄 선택 해제하려면 WordPress가 요청을 처리하는 방법을 알아야 합니다.

LAMP 스택 서버-클라이언트 통신

1. 클라이언트는 웹 서버에서 웹 데이터를 요청하기 위해 HTTP 요청을 보냅니다.

2. 웹 서버는 클라이언트로부터 유효한 HTTP 요청을 수신합니다(방화벽 규칙을 통과한 후):

  • HTTP 요청의 구조를 분석하고 클라이언트가 필요로 하는 HTML 페이지를 정확히 식별합니다.
  • 스크립팅 계층(PHP)에 대한 요청을 구문 분석합니다.

3. 스크립팅 레이어 PHP:

  • 데이터베이스에 쿼리하고 필요한 모든 정보를 얻습니다.
  • 테마의 소스 코드와 결합하여 동적 웹 페이지를 렌더링합니다.
  • 웹 서버로 돌아갑니다.

4. 웹 서버:

  • HTTP 응답 메시지를 구성합니다.
  • 클라이언트에 HTTP 응답 메시지를 보냅니다.

5. 클라이언트는 웹 서버로부터 HTTP 응답 메시지를 수신한 다음 웹 데이터를 웹 브라우저에 표시합니다.

WordPress 게시물의 대량 조작을 위한 중요 테이블

WordPress 사이트의 데이터베이스 스키마에는 테이블 팩이 있습니다. 스키마는 사이트마다 다릅니다. 그러나 WordPress 사이트의 게시물을 조작할 때 다음 테이블에 더 큰 관심을 기울여야 합니다.

테이블 이름 설명
wp_postmeta WordPress 사이트의 추가 콘텐츠 관련 데이터를 저장합니다.
wp_post WordPress 사이트의 모든 중요한 콘텐츠 관련 데이터를 저장합니다.
wp_term_relationships 카테고리, 태그, 링크에 게시물을 연결하는 모든 연결 데이터를 저장합니다. 이 테이블의 정보는 용어 개체와 용어 사이의 맵 역할을 합니다.
wp_term_taxonomy wp_terms 테이블에 대한 추가 데이터를 저장합니다.
wp_term 게시물, 페이지 및 링크에 대한 카테고리, 태그를 저장합니다.

범주에서 다른 범주로 모든 게시물 이동 – SQL 명령 사용

WordPress 데이터베이스를 직접 조작하려면 운영자가 사용할 DBMS(데이터베이스 관리 시스템)를 결정해야 합니다. 랩 환경은 웹 플랫폼으로 LAMP 스택을 사용하기 때문에 운영자는 SSH 세션을 통해 phpMyAdmin, WordPress 플러그인, MySQL 클라이언트(터미널 명령)를 사용하여 WordPress 데이터베이스와 작업할 수 있습니다. 이 시나리오에서 DBMS는 더 나은 설명을 위해 MySQL WorkBench입니다.

WordPress 데이터베이스의 변경 사항을 구현하기 전에 WordPress 사이트의 전체 백업을 수행하는 것이 좋습니다. 이 전체 백업에는 WordPress 소스 코드(테마, PHP 파일 ...) 및 데이터베이스 구조가 포함됩니다. 이상적인 목적을 위해 운영자는 WordPress 사이트를 실행하는 전체 호스트의 전체 백업을 만들 수 있습니다.

다음은 "미분류" 범주에서 "영감" 범주로 모든 게시물을 이동하는 완전한 SQL 스크립트입니다.

 SET @listID = (
     	wp_posts에서 GROUP_CONCAT(ID) 선택
             	WHERE post_type="게시물"
             	AND post_status = "게시"
             	및 ID 입력(
                      	wp_term_relationships에서 object_id 선택
                               	WHERE term_taxonomy_id IN(
                                        	SELECT term_taxonomy_id FROM wp_term_taxonomy
                                                	WHERE 분류 = "카테고리"
                                                	AND term_id IN (
                                                         	SELECT t.term_id FROM wp_terms t
                                                                  	WHERE t.name="미분류"
   	 )
	)
)
);

SET @newCategoryID = (
     	SELECT t.term_id FROM wp_terms t WHERE t.name='영감'
);
 
@newCategoryID를 선택하십시오.
 
@sqlCmd = CONCAT(
     	'업데이트 wp_term_relationships tr ',
	'SET tr.term_taxonomy_id = ', @newCategoryID, ' ',
	'WHERE tr.object_id IN (', @listID, ');'
);

선택 @sqlCmd;

@sqlCmd에서 stmt를 준비합니다.
SET SQL_SAFE_UPDATES = 0;
실행 명령;
SET SQL_SAFE_UPDATES = 1;
DEALLOCATE PREPARE stmt;

자세한 스크립트는 다음과 같이 설명합니다.

특정 카테고리에 속하는 모든 게시물의 ID 목록 가져오기

이 데모에서는 "미분류" 범주에서 모든 게시물을 일괄 선택 해제한 다음 "영감"이라는 새 범주로 이동하는 방법을 보여줍니다.

WordPress 관리자 패널에서 이 3개의 게시물은 "미분류" 범주로 정렬됩니다.

3개의 게시물의 ID 목록을 가져와서 카테고리를 일괄 선택 해제합니다.

아래의 SQL 명령은 "Uncategorized"라는 범주의 모든 게시물 ID를 검색합니다.

 SET @listID = (
     	wp_posts에서 GROUP_CONCAT(ID) 선택
             	WHERE post_type="게시물"
             	AND post_status = "게시"
             	및 ID 입력(
                      	wp_term_relationships에서 object_id 선택
                               	WHERE term_taxonomy_id IN(
                                        	SELECT term_taxonomy_id FROM wp_term_taxonomy
                                                	WHERE 분류 = "카테고리"
                                                	AND term_id IN (
                                                         	SELECT t.term_id FROM wp_terms t
                                                                  	WHERE t.name="미분류"
        )
    )
)
);

@listID 값을 확인합니다.

게시물의 카테고리를 일괄 선택 해제하려면 게시물 ID 목록을 가져옵니다.

새 카테고리의 ID 가져오기

 SET @newCategoryID = (
    	SELECT t.term_id FROM wp_terms t WHERE t.name='영감'
);

@newCategoryID 값을 확인합니다.

새 카테고리 ID를 얻은 다음 "미분류" 카테고리를 일괄 선택 해제한 후 게시물을 해당 ID로 이동합니다.

주어진 ID 목록으로 게시물 업데이트

먼저 SQL 명령을 빌드하고 변수 @sqlCmd 에 저장합니다.

 /* @sqlCmd 변수에 저장된 예상 명령:
업데이트 wp_term_relationships tr
SET tr.term_taxonomy_id = 5
WHERE tr.object_id IN (131,132,133);

*/
@sqlCmd = CONCAT(
    	'업데이트 wp_term_relationships tr ',
	'SET tr.term_taxonomy_id = ', @newCategoryID, ' ',
	'WHERE tr.object_id IN (', @listID, ');'
);

두 번째로 다음을 확인합니다.

주어진 ID 목록으로 게시물을 업데이트하려면 SQL 명령을 확인하십시오.

마지막으로 @sqlCmd 변수에 저장된 SQL 명령을 아래 명령문으로 실행합니다.

 @sqlCmd에서 stmt를 준비합니다.
SET SQL_SAFE_UPDATES = 0;
실행 명령;
SET SQL_SAFE_UPDATES = 1;
DEALLOCATE PREPARE stmt;

결과는 다음과 같습니다.

플러그인이 없는 게시물의 카테고리를 일괄 선택 해제한 결과입니다.

마지막 말

WordPress 사이트에서 게시물의 카테고리를 일괄 선택 해제하는 다양한 방법이 있습니다. 플러그인을 사용하여 웹 인터페이스를 통해 상호 작용하거나 SQL 명령을 사용하여 WordPress 데이터베이스에 직접적인 영향을 주는 경우 운영자는 수정되는 필수 개체가 무엇인지 이해해야 합니다.

이 기사에서 게시물 카테고리를 일괄 선택 해제할 수 있는 또 하나의 선택지가 제공되기를 바랍니다. WordPress에서 더 유용한 기술을 얻으려면 다음 기사를 따르십시오!

플러그인을 사용하여 게시물의 카테고리를 보다 쉽게 ​​일괄 선택 해제하려면 이 문서를 참조하세요.