워드프레스:대량의 모든 게시물에서 "분류되지 않은" 범주를 제거하려면 어떻게 해야 합니까?
시나리오:
저는 "Uncategorized" 카테고리를 가진 1000개의 게시물을 가지고 있는데, 그 모든 게시물에서 "Uncategorized"를 제거하고 해당 게시물에 다른 카테고리를 설정하고 싶습니다.
즉, 분류되지 않은 모든 게시물을 한 번에 다른 범주로 이동합니다.
각 게시물을 개별적으로 거치지 않고 일괄적으로 할 수 있습니까?
당신이 찾고 있는 것은 워드프레스 대량 편집기입니다.
Posts > Categories > Uncategorized로 이동
오른쪽 상단 모서리에 있는 "화면 옵션" 탭을 클릭한 다음 "페이지당 항목 수:"를 1000으로 변경합니다. (정말 느린 서버라면 한 번에 작업을 덜 수행하는 것을 고려해 볼 수 있습니다.)
이제 페이지의 모든 항목을 선택하고 모두 선택 위에 있는 "일괄 수행" 드롭다운을 클릭하고 "편집" 옵션을 선택합니다.
히트 적용
대량 편집기에서 모든 게시물을 변경할 "새 카테고리"를 클릭하고 업데이트를 누릅니다.
모든 게시물을 "새 카테고리"에 추가했으면 "분류되지 않음" 카테고리를 삭제해야 합니다.이 작업 방법:
- Settings > Writing
- 이제 "기본 게시물 카테고리"를 "분류되지 않음" 이외의 항목으로 변경합니다.
- Posts > Categories로 이동하여 "Uncategorized" 카테고리 삭제
- 이제 원하는 경우 "Uncategorized" 카테고리를 다시 작성한 후 기본값으로 변경할 수 있습니다.
"분류되지 않은" 카테고리를 삭제하면 모든 게시물에서 해당 카테고리가 삭제됩니다.
"Uncategorized"에 남기를 원하는 게시물이 있는 경우, "temp"라는 새로운 카테고리를 만들고 그 카테고리에 남기를 원하는 게시물을 모두 할당합니다."Uncategorized"를 삭제하면 다시 생성하고 "temp"에 있는 게시물을 해당 카테고리에 다시 할당합니다.
이미 발견하셨듯이, 대량 편집기는 여러 게시물에 카테고리를 추가할 수 있을 뿐이며, 여러 게시물에서 카테고리를 제거할 수는 없습니다.제가 찾은 최선의 방법은 동일한 대량 편집 방법을 사용하여 여러 게시물에서 범주를 제거하는 기능을 추가하는 이 플러그인 https://wordpress.org/plugins/bulk-remove-posts-from-category/ (WP 저장소)을 일시적으로 설치하는 것이었습니다.단순히 카테고리 목록 아래에 '제거' 확인란을 추가하기만 하면 됩니다.
분류되지 않은 범주의 ID는 다음과 같습니다.1
. 우리의 작업 흐름이 어떻게 될지는
분류되지 않은 카테고리에 할당된 모든 게시물을 가져옵니다.
우리는 수천 개의 게시물이 있는 사이트에서 최대 1000배 빠른 조회를 할 수 있는 게시물 ID만 얻을 것입니다.이렇게 하면 쿼리가 시간 초과되거나 최대 메모리 치명적 오류에 도달하지 않는 데도 도움이 됩니다.
새 시스템을 제거하고 설정하는 데 사용
참고:
아래 코드는 PHP 5.4+를 필요로 하며 변경사항은 되돌릴 수 없으므로 먼저 데이터베이스를 백업하십시오.
$args = [
'nopaging' => true, // Gets all posts
'cat' => 1, // Only gets posts assigned to category 1 which is the uncategorized category
'fields' => 'ids', // Only get post ID's, make query up 1000 times faster on huge databases
];
$q = get_posts( $args );
if ( $q ) {
foreach ( $q as $v ) {
// Get all the post categories
$categories = get_the_category( $v );
$category_ids = [];
foreach ( $categories as $category ) {
// Replace all uncategorized category instances with our new category id and build new array
if ( $category->term_id == 1 ) {
$category_ids[] = (int) 21; // REPLACE WITH THE CORRECT NEW CATEGORY ID
} else {
$category_ids[] = (int) $category->term_id;
}
}
// Set our new categories to the post
if ( $category_ids ) // Unnecessary check for categories, but just in case should something fail
wp_set_object_terms( $v, $category_ids, 'category' );
}
}
참고로, 우리가 그 어디에서도$post
글로벌 또는 셋업 포스트데이터를 사용하므로 전화할 필요가 없습니다.wp_reset_postdata()
:-)
워드프레스는 카테고리와 게시물 사이의 부모/자녀 관계를 저장합니다.wp_term_relationships
여기에 문서화되어 있는 표입니다.@Pieter Goosen이 언급한 바와 같이, "Uncategoryed" 카테고리는 다음과 같은 ID를 가지고 있습니다.1
. 따라서 SQL 데이터베이스를 백업한 다음 SQL 명령줄 클라이언트로 연결할 수 있습니다.sudo mysql wordpress
를 사용할 수 있습니다. 다음 SQL 명령을 실행합니다.
delete from wp_term_relationships where term_taxonomy_id = 1;
분류되지 않은 모든 게시물을 다른 카테고리로 이동하려면 Bulk Move 플러그인을 사용하면 됩니다.
일부 게시물에서 범주를 제거하려면 범주에서 대량으로 게시물을 제거하는 것이 더 나은 옵션일 수 있습니다.
Melebius가 말했듯이, https://wordpress.org/plugins/bulk-remove-posts-from-category/ 을 사용하는 것이 훨씬, 훨씬 더 빠릅니다! 그것은 게시물뿐만 아니라 제품들과도 연동됩니다.훌륭합니다!
테마의 기능에 추가할 수 있습니다.php 파일, 사이트의 페이지를 한 번 새로 고친 다음 기능을 제거합니다.
위험을 무릅쓰고 데이터베이스를 먼저 백업하세요!Undo 버튼이 없습니다.
<?php
$args = array(
'posts_per_page' => -1
);
$myposts = get_posts( $args );
foreach ( $myposts as $post ) :
setup_postdata( $post );
$categories = get_the_category();
$catcount = count($categories);
$postid = $post->ID;
$catlist = array();
//Building a list of categories for each post and EXCLUDING "uncategorized"
foreach( $categories as $category ) {
if($category->name == 'Uncategorized') {
continue;
}
$catlist[] = $category->term_id;
}
// If there's just one category, and that category is "Uncategorized", move the category to one of your choosing
if($catcount == 1 && $categories[0]->name == "Uncategorized") {
// This is the category ID that you want to move uncategorized posts to
$catlist = array(189);
}
wp_set_object_terms( $postid, $catlist, 'category' );
endforeach;
wp_reset_postdata();
?>
언급URL : https://stackoverflow.com/questions/31569385/wordpress-how-do-i-remove-the-category-uncategorized-from-all-posts-in-bulk
'programing' 카테고리의 다른 글
오라클의 스파크 쿼리(로드)가 SQOOP에 비해 매우 느린 이유는 무엇입니까? (0) | 2023.10.18 |
---|---|
오라클 SQL 개발자의 사용자 스니펫을 쉽게 백업할 수 있는 방법이 있습니까? (0) | 2023.10.18 |
JS를 사용하지 않고 이미지를 끌거나 선택할 수 없도록 방지 (0) | 2023.10.18 |
사용자 지정 로고 링크 변경 워드프레스 (0) | 2023.10.18 |
Powershell의 Copy-Item의 -container 인수의 의미는 무엇입니까? (0) | 2023.10.13 |