2017-12-05 11 views
1

おすすめ画像のない投稿は、wordpressのmysqlで削除できますか?どのようにmysqlを介してワードプレスで特集画像なしの記事を削除するには?

私はこのコードを試しましたが、それはまた、特集画像を含むすべての投稿を削除します。私はちょうどフィーチャーイメージなしでその記事だけを削除したいと思っています。

DELETE FROM wp_posts WHERE ID not in (select post_id as p from wp_postmeta where meta_key like "_wp_attached_file") 
+0

このタスクのプラグインを見つけようとしましたが、何も見つかりませんでした。 – hardy

答えて

1

問題は、あなたがすべての種類のもののための 'post_id'を取り戻しているということです。

meta_keyの値は "_thumbnail_id"で、親の投稿がpost_idに格納されます。

あなた自身の危険を覚悟でDELETE、あなたは代わりに、これはあなたが本当に欲しいものないことを確認してくださいするDELETE最初のSELECTを試みる場合があります:

DELETE FROM wp_posts WHERE ID not in (select post_id as p from wp_postmeta where meta_key like "_thumbnail_id"); 

UPDATE:ここでは私の検証テストがあります。

新しい投稿(7161)を作成し、次に機能画像を追加しました。

mysql> select * from wp_postmeta where post_id IN(7161,7162); 
+---------+---------+---------------+---------------------+ 
| meta_id | post_id | meta_key  | meta_value   | 
+---------+---------+---------------+---------------------+ 
| 12533 | 7161 | _edit_lock | 1512581739:1  | 
| 12534 | 7161 | _edit_last | 1     | 
| 12549 | 7161 | _thumbnail_id | 7115    | 
| 12543 | 7161 | CODE1   |      | 
| 12544 | 7161 | _CODE1  | field_57e4293a9238c | 
| 12545 | 7161 | CODE3   |      | 
| 12546 | 7161 | _CODE3  | field_57e4297c9238d | 
| 12547 | 7161 | CODE2   |      | 
| 12548 | 7161 | _CODE2  | field_57e42ceb508ff | 

はwp_postsテーブル

create table wp_posts_test like wp_posts; 
    Query OK, 0 rows affected (0.01 sec) 

のクローンを作成し、wp_postsからのライブデータとそれをロード。

insert into wp_posts_test select * from wp_posts; 
    Query OK, 6938 rows affected (0.30 sec) 

は次に機能を備えた画像なしで何かを削除するには、私のテストクエリを実行しました:

delete from wp_posts_test WHERE ID NOT IN (select post_id from wp_postmeta where meta_key="_thumbnail_id"); 
    Query OK, 6937 rows affected (0.37 sec) 

はテーブルをチェックし、1つのレコードのみがあり、そしてそれは私が維持したいのポストです:

select * from wp_posts_test \G 

*************************** 1. row *************************** 
        ID: 7161 
      post_author: 1 
      post_date: 2017-12-06 09:29:20 
     post_date_gmt: 2017-12-06 17:29:20 
     post_content: This is just a test post to see if the featured image OR the post is nuked using a mysql hack. Standby for destruction. 
      post_title: Feature Image Test Post 
     post_category: 0 
     post_excerpt: 
      post_status: publish 
     comment_status: open 
      ping_status: open 
     post_password: 
      post_name: feature-image-test-post 
       to_ping: 
       pinged: 
     post_modified: 2017-12-06 09:35:18 
    post_modified_gmt: 2017-12-06 17:35:18 
post_content_filtered: 
      post_parent: 0 
       guid: http://blog.daviddemartini.com/?p=7161 
      menu_order: 0 
      post_type: post 
     post_mime_type: 
     comment_count: 0 

1セット内の行(0.00秒)

それは私には完全に正常に動作しますようにあなたかどうかは、見えます注目画像への関連付けをしていないwp_postsからすべてのレコードを削除したかったのです。なぜそれがあなたのために働いていないかもしれない、私には謎です。

+0

こんにちは、ありがとうございました。緊急の仕事のために、都合の良いことを教えてください。私は今戻ってこのコードをテストするだけで、すべてのサムネイル(おすすめ画像)が投稿から削除されます。あなたはそれを調べていただけますか?ありがとうございました – hardy

+0

私はこれをテストしたとき、サムネイルタイプのメタレコードを持っていないすべての投稿(関連付けられたおすすめ画像があることを示しています)を探しました。それが目標ではなかったのでしょうか、それとも別の目的がありますか? – DDeMartini

+0

注目画像を持たない投稿が削除されることを願っています。しかし、あなたのコードでは、特集された画像そのものは、それを持っている投稿から削除されます。 – hardy

関連する問題