How is custom menu hierarchy output handled?

Each nav menu item is stored a post type named nav_menu_item. The horizontal position is stored in the column menu_order The vertical position (hierarchy) is stored as post meta field named _menu_item_menu_item_parent holding the parent nav_menu_item ID. To create nested lists WordPress looks for _menu_item_menu_item_parent on each item, and if there is an item with … Read more

Does WordPress cache get_user_meta() results?

Yes, it does. That function is a wrapper for get_metadata(). Inside of that you can find: $meta_cache = wp_cache_get($object_id, $meta_type . ‘_meta’); if ( !$meta_cache ) { $meta_cache = update_meta_cache( $meta_type, array( $object_id ) ); $meta_cache = $meta_cache[$object_id]; }

How to modify post content before writing to database?

You generally use add_filter before displaying information. For your case you can use add_action(‘publish_post’, ‘your_function’) and then you intercept $_POST values. The content of the WYSIWYG editor is available through $_POST[‘content’]. The hook is of type publish_{post_type} btw. You should change accordingly. Example: function wpse_89292_save_my_post() { print_r( $_POST[‘content’] ); # will display contents of the … Read more

Formatting of curly brackets array from WP database to get more readable output

This is a serialized value, so you should run it through maybe_unserialize() or just unserialize() before you edit it. When you work in plugins or themes, always use the API: update_option() and get_option() for example. These functions will un/serialize the values for you, so you don’t have to worry about the database. See also: Settings … Read more

How to Remove Slug From Database?

I don’t exactly know about the word embed, but by default WordPress reserves & uses these sort of words for internal use. I tried to create a page slug named embed but it wouldn’t work for me either on my localhost or on my live server. Maybe this is reserved for WordPress oEmbed functionality.

Corrupt WordPress Database

You’re probably running into the joys of MySQL’s MyISAM engine… From within MySQL (or PhpMyAdmin), use REPAIR TABLE xyz statements again, repeatedly, on each of your tables (or rather, your terms related tables, since these are the ones that sound corrupt) to see if this solves anything. If those fail, there are a few documented … Read more