WordPress Version: 6.3
/**
* Deletes orphaned draft menu items
*
* @access private
* @since 3.0.0
*
* @global wpdb $wpdb WordPress database abstraction object.
*/
function _wp_delete_orphaned_draft_menu_items()
{
global $wpdb;
$delete_timestamp = time() - DAY_IN_SECONDS * EMPTY_TRASH_DAYS;
// Delete orphaned draft menu items.
$menu_items_to_delete = $wpdb->get_col($wpdb->prepare("SELECT ID FROM {$wpdb->posts} AS p\n\t\t\tLEFT JOIN {$wpdb->postmeta} AS m ON p.ID = m.post_id\n\t\t\tWHERE post_type = 'nav_menu_item' AND post_status = 'draft'\n\t\t\tAND meta_key = '_menu_item_orphaned' AND meta_value < %d", $delete_timestamp));
foreach ((array) $menu_items_to_delete as $menu_item_id) {
wp_delete_post($menu_item_id, true);
}
}