_wp_delete_orphaned_draft_menu_items()
云策文档标注
概述
_wp_delete_orphaned_draft_menu_items() 是一个 WordPress 内部函数,用于删除孤立的草稿菜单项。它通过数据库查询识别并清理超过指定时间未被使用的菜单项。
关键要点
- 函数功能:删除孤立的草稿菜单项,基于 _menu_item_orphaned 元数据和 post_status 为 'draft' 的条件。
- 实现方式:使用 $wpdb 进行 SQL 查询,结合 DAY_IN_SECONDS 和 EMPTY_TRASH_DAYS 计算删除时间戳。
- 相关函数:与 wp_delete_post()、wpdb::get_col() 和 wpdb::prepare() 等函数关联,用于数据库操作和查询安全。
- 版本历史:自 WordPress 3.0.0 版本引入。
原文内容
Deletes orphaned draft menu items
Source
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
LEFT JOIN $wpdb->postmeta AS m ON p.ID = m.post_id
WHERE post_type = 'nav_menu_item' AND post_status = 'draft'
AND 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 );
}
}
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |