回答編集履歴
3
編集
test
CHANGED
@@ -1,10 +1,28 @@
|
|
1
|
-
|
1
|
+
以下のコードをテーマのfunctions.phpに書いて管理画面にアクセスするとプラグインと同じような処理をしますが```posts_per_page```に件数を指定すればそれ以上は処理しないので、何度かブラウザをリロードすればいずれは終わるでしょう。
|
2
|
+
|
3
|
+
```
|
2
4
|
|
3
5
|
function my_delete_post() {
|
4
6
|
|
5
|
-
g
|
7
|
+
$args = array(
|
6
8
|
|
9
|
+
'posts_per_page' => -1, // -1で全記事 1000件毎程度ならいけるかも?
|
10
|
+
|
7
|
-
|
11
|
+
'category' => array( '-1', '-2' ,'-3' ), // "削除したくない"記事のカテゴリーを-を付けて指定
|
12
|
+
|
13
|
+
'post_type' => 'post',
|
14
|
+
|
15
|
+
'post_status' => 'publish'
|
16
|
+
|
17
|
+
);
|
18
|
+
|
19
|
+
$post_ids = wp_list_pluck( get_posts( $args ), 'ID' );
|
20
|
+
|
21
|
+
foreach ( $post_ids as $post_id ) {
|
22
|
+
|
23
|
+
wp_delete_post( $post_id, true );
|
24
|
+
|
25
|
+
}
|
8
26
|
|
9
27
|
}
|
10
28
|
|
@@ -12,14 +30,44 @@
|
|
12
30
|
|
13
31
|
```
|
14
32
|
|
15
|
-
カスタム投稿の場合はポストタイプを変更で。~~
|
16
33
|
|
17
34
|
|
18
35
|
|
36
|
+
|
37
|
+
または**削除したい**記事のカテゴリーIDを```term_id =```に指定すれば即消えます。データベースを直接叩くので一番確実かと。
|
38
|
+
|
39
|
+
```
|
40
|
+
|
41
|
+
function my_delete_post() {
|
42
|
+
|
19
|
-
|
43
|
+
global $wpdb;
|
44
|
+
|
45
|
+
$wpdb->get_results( "
|
46
|
+
|
47
|
+
delete a,b,c,d
|
48
|
+
|
49
|
+
FROM wp_posts a
|
50
|
+
|
51
|
+
LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id )
|
52
|
+
|
53
|
+
LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
|
54
|
+
|
55
|
+
LEFT JOIN wp_term_taxonomy d ON ( d.term_taxonomy_id = b.term_taxonomy_id )
|
56
|
+
|
57
|
+
LEFT JOIN wp_terms e ON ( e.term_id = d.term_id )
|
58
|
+
|
59
|
+
WHERE e.term_id =2 or e.term_id =3 or e.term_id =4
|
60
|
+
|
61
|
+
" );
|
62
|
+
|
63
|
+
}
|
64
|
+
|
65
|
+
add_action( 'admin_init', 'my_delete_post' );
|
66
|
+
|
67
|
+
```
|
20
68
|
|
21
69
|
|
22
70
|
|
23
|
-
|
71
|
+
参考
|
24
72
|
|
25
73
|
[https://wpguru.co.uk/2013/02/how-to-bulk-delete-posts-in-wordpress-with-mysql/](https://wpguru.co.uk/2013/02/how-to-bulk-delete-posts-in-wordpress-with-mysql/)
|
2
編集追記
test
CHANGED
@@ -16,4 +16,10 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
無視してください。
|
19
|
+
↑は無視してください。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
検索すればすぐ見つかりました。
|
24
|
+
|
25
|
+
[https://wpguru.co.uk/2013/02/how-to-bulk-delete-posts-in-wordpress-with-mysql/](https://wpguru.co.uk/2013/02/how-to-bulk-delete-posts-in-wordpress-with-mysql/)
|
1
編集
test
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
数万件がエラー無く消せるかどうか分かりませんが、以下をテーマのfunctions.phpに書いてWordPressの管理画面にアクセスしてみてください。
|
1
|
+
~~数万件がエラー無く消せるかどうか分かりませんが、以下をテーマのfunctions.phpに書いてWordPressの管理画面にアクセスしてみてください。```
|
2
|
-
|
3
|
-
```
|
4
2
|
|
5
3
|
function my_delete_post() {
|
6
4
|
|
@@ -14,4 +12,8 @@
|
|
14
12
|
|
15
13
|
```
|
16
14
|
|
17
|
-
カスタム投稿の場合はポストタイプを変更で。
|
15
|
+
カスタム投稿の場合はポストタイプを変更で。~~
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
無視してください。
|