2017-08-10 19 views
0

私は、特定のタイトルと現在のユーザーを著者としてカスタムポストタイプの投稿を削除するボタンをwordpressに追加しようとしています。Wordpress - カスタムポストタイプの投稿を削除する

問題が発生するのは、すべての投稿が削除され、この特定の作者またはこのタイトルだけでなく、すべてのjob_alert投稿が削除されるという問題です。

誰かが理由を見ることができますか?

$delete_post = array(
    'post_type'  => 'job_alert', 
    'post_title' => $title, 
    'post_status' => 'publish', 
    'post_author' => $current_user->ID 
); 
    $posts = new WP_Query($delete_post); 

if ($posts->have_posts()) { 
    while ($posts->have_posts()) { 
     $posts->the_post(); 
     wp_delete_post(get_the_ID()); 
    } 
} 

また、このコードは投稿を作成するものであり、うまく動作します。同様のコード。特定のポストを削除するための

$new_post = array(
    'post_type'  => 'job_alert', 
    'post_title' => $title, 
    'post_status' => 'publish', 
    'post_author' => $current_user->ID 
); 

$post_id = wp_insert_post($new_post); 
+0

クエリは意図したとおりに機能しますか?ループの中に 'var_dump(get_the_ID())'を使ってレスポンスに含まれている投稿数を確認してください –

答えて

1

、ここでの解決策は、

あるだけ、それはあなたが望む必要なポストを返します、あなたのクエリに代わりpost_titlenameパラメータを使用してください。

私はあなたのコードを変更しました。以下の更新されたコードを見つけてください:

$delete_post = array(
    'post_type'  => 'job_alert', 
    'name' => $title, 
    'post_status' => 'publish', 
    'post_author' => $current_user->ID 
); 

ここで必要な投稿が返されます。

ご希望の場合は、お手数ですがお手数ですがご連絡ください。おかげさまで

+0

これはそのトリックでした!非常に@PrateekVermaありがとう! – Fredrik

+0

うれしいことに、あなたを助けました。ありがとう:) –

+0

このトピックに関するもう1つの質問;あなたが提供したコードは素晴らしいですが、ÅÄÖを含む名前では機能しません。どんな考え? – Fredrik

関連する問題