Wordpress

WordPress: Post Types

Post Types

There are five default Post Types readily available to users or internally used by the WordPress installation:

  • Post (Post Type: ‘post’)
  • Page (Post Type: ‘page’)
  • Attachment (Post Type: ‘attachment’)
  • Revision (Post Type: ‘revision’)
  • Navigation menu (Post Type: ‘nav_menu_item’)

Menu item is custom post type in WP. They are stored in wp_posts table. You can find all of them by using this query:

SELECT * FROM `wp_posts` WHERE post_type = 'nav_menu_item'

Menu by itself is a taxonomy in WP. It means that you can find all menus in wp_terms table, by running following query:

SELECT * FROM wp_terms AS t LEFT JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'nav_menu'

Relations between menus and menu items are stored in wp_term_relationships table. To find all items of specific menu you can use this query:

SELECT p.* 
  FROM wp_posts AS p 
  LEFT JOIN wp_term_relationships AS tr ON tr.object_id = p.ID
  LEFT JOIN wp_term_taxonomy AS tt ON tt.term_taxonomy_id = tr.term_taxonomy_id
 WHERE p.post_type = 'nav_menu_item'
   AND tt.term_id = /*your menu ID*/;

 

Leave a Reply

Your email address will not be published. Required fields are marked *