2016-04-14 12 views
0

私は、ナビゲーションメニューに新しいアイテムを追加したり削除したりするカスタムプラグインを開発しようとしています。WordPress - navメニューアイテムを削除すると、リンクされたページも削除されます

そして、term_object_idを各メニューのwp_term_relationshipsから保存しました。

私もfollwing方法で試してみましたが、同じ、私は次の関数を使用して、メニュー項目を削除しようとしています 、それはまた、リンク先のページを削除するメニューから項目を削除するには

function removeMenuEntry($menu_id,$menuterm){  
    $itemData = array(
     'menu-item-object-id' => $menuterm, 
     'menu-item-status'  => 'draft' 
    ); 
    wp_update_nav_menu_item($menu_id, $menuterm, $itemData) ; 
} 

をしよう結果、

function removeMenuItem($term_menu){ 
    global $wpdb; 
    $sql = " DELETE FROM wp_term_relationships WHERE object_id = '$term_menu' ; "; 
    $wpdb->query($sql); 
    $sql = " 
    DELETE FROM wp_posts 
    WHERE ID=(
    SELECT post_id from wp_postmeta 
    WHERE meta_key='_menu_item_object_id' 
    AND meta_value='$term_menu' 
    ) AND post_type='nav_menu_item' ; "; 
    $wpdb->query($sql); 
    $sql = " SELECT post_id from wp_postmeta 
      WHERE meta_key='_menu_item_object_id' 
      AND meta_value='$term_menu' "; 
    $result_state = $wpdb->get_results($sql,ARRAY_A); 
    $sql = "DELETE from wp_postmeta 
      WHERE post_id=".$result_state[0]['post_id']." "; 
    $wpdb->query($sql); 
} 

答えて

0

このコードは私のために働いています。コード全体を確認してください。

wp_delete_post(); 

が投稿を削除するために追加されました。

または、クエリブラウザからクエリを実行してみてください。

+0

ご迷惑をおかけしましたが、投稿を削除するコードがありました。ありがとう... – Jobz

関連する問題