我正在尝试开发一个自定义插件,通过它我必须在导航菜单中添加和删除新项目。
并且我已经从每个菜单项的wp_term_relationships
保存了term_object_id
。
当试图从菜单中删除一个项目时,它也会删除链接页面,我正在尝试使用以下功能删除菜单项,
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);
}
此代码对我有效。请检查您的整个代码是否有其他代码或函数,如
wp_delete_post( );
添加以删除该帖子。
或者尝试从查询浏览器运行查询。