{"id":13070,"date":"2024-02-20T14:43:39","date_gmt":"2024-02-20T13:43:39","guid":{"rendered":"https:\/\/roglacup.com\/klaus62\/?p=13070"},"modified":"2024-02-20T14:47:06","modified_gmt":"2024-02-20T13:47:06","slug":"wordpress-database-description","status":"publish","type":"post","link":"https:\/\/roglacup.com\/klaus62\/2024\/02\/20\/wordpress-database-description\/","title":{"rendered":"WordPress database description"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"425\" height=\"599\" src=\"https:\/\/roglacup.com\/klaus62\/wp-content\/uploads\/2024\/02\/425px-WP4.4.2-ERD.png\" alt=\"\" class=\"wp-image-13071\" srcset=\"https:\/\/roglacup.com\/klaus62\/wp-content\/uploads\/2024\/02\/425px-WP4.4.2-ERD.png 425w, https:\/\/roglacup.com\/klaus62\/wp-content\/uploads\/2024\/02\/425px-WP4.4.2-ERD-213x300.png 213w\" sizes=\"auto, (max-width: 425px) 100vw, 425px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"tables\">The Tables<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_posts\">wp_posts<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_postmeta\">wp_postmeta<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_comments\">wp_comments<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_commentmeta\">wp_commentmeta<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_terms\">wp_terms<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_termmeta\">wp_termmeta<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_term_taxonomy\">wp_term_taxonomy<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_term_relationships\">wp_term_relationships<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_users\">wp_users<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_usermeta\">wp_usermeta<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_options\">wp_options<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_links\">wp_links<\/a><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_posts\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_posts\">#<\/a>wp_posts<\/h4>\n\n\n\n<p>The posts table is arguably the most important table in the WordPress database. Its name sometimes throws people who believe it purely contains their blog posts. However, albeit badly named, it is an extremely powerful table that stores various types of content including posts, pages, menu items, media attachments and any custom post types that a site uses.<\/p>\n\n\n\n<p>The table\u2019s flexible content nature is provided by the \u2018post_type\u2019 column which denotes if the row is a post, page, attachment, nav_menu_item or another type. But this flexibility also makes it hard to discuss and describe. Essentially the table contains rows of content objects with different types, but for ease of reading, I will refer to the rows as \u201cposts\u201d throughout this article.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ID<\/strong>&nbsp;\u2013 unique number assigned to each post.<\/li>\n\n\n\n<li><strong>post_author<\/strong>&nbsp;\u2013 the user ID who created it. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_users\">wp_users<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>post_date<\/strong>&nbsp;\u2013 time and date of creation.<\/li>\n\n\n\n<li><strong>post_date_gmt<\/strong>&nbsp;\u2013 GMT time and date of creation. The GMT time and date is stored so there is no dependency on a site\u2019s timezone in the future.<\/li>\n\n\n\n<li><strong>post_content<\/strong>&nbsp;\u2013 holds all the content for the post, including HTML, shortcodes and other content.<\/li>\n\n\n\n<li><strong>post_title<\/strong>&nbsp;\u2013 title of the post.<\/li>\n\n\n\n<li><strong>post_excerpt<\/strong>&nbsp;\u2013 custom intro or short version of the content.<\/li>\n\n\n\n<li><strong>post_status<\/strong>&nbsp;\u2013 status of the post, e.g. \u2018draft\u2019, \u2018pending\u2019, \u2018private\u2019, \u2018publish\u2019. Also a great WordPress&nbsp;<a href=\"https:\/\/poststatus.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">news site<\/a>.<\/li>\n\n\n\n<li><strong>comment_status<\/strong>&nbsp;\u2013 if comments are allowed.<\/li>\n\n\n\n<li><strong>ping_status<\/strong>&nbsp;\u2013 if the post allows&nbsp;<a href=\"https:\/\/wordpress.org\/support\/article\/introduction-to-blogging\/#pingbacks\" target=\"_blank\" rel=\"noreferrer noopener\">ping and trackbacks<\/a>.<\/li>\n\n\n\n<li><strong>post_password<\/strong>&nbsp;\u2013 optional password used to view the post.<\/li>\n\n\n\n<li><strong>post_name<\/strong>&nbsp;\u2013 URL friendly slug of the post title.<\/li>\n\n\n\n<li><strong>to_ping<\/strong>&nbsp;\u2013 a list of URLs WordPress should send pingbacks to when updated.<\/li>\n\n\n\n<li><strong>pinged<\/strong>&nbsp;\u2013 a list of URLs WordPress has sent pingbacks to when updated.<\/li>\n\n\n\n<li><strong>post_modified<\/strong>&nbsp;\u2013 time and date of last modification.<\/li>\n\n\n\n<li><strong>post_modified_gmt<\/strong>&nbsp;\u2013 GMT time and date of last modification.<\/li>\n\n\n\n<li><strong>post_content_filtered<\/strong>&nbsp;\u2013 used by plugins to cache a version of post_content typically passed through the \u2018the_content\u2019 filter. Not used by WordPress core itself.<\/li>\n\n\n\n<li><strong>post_parent<\/strong>&nbsp;\u2013 used to create a relationship between this post and another when this post is a revision, attachment or another type.<\/li>\n\n\n\n<li><strong>guid<\/strong>&nbsp;\u2013 Global Unique Identifier, the permanent URL to the post, not the permalink version.<\/li>\n\n\n\n<li><strong>menu_order<\/strong>&nbsp;\u2013 holds the display number for pages and other non-post types.<\/li>\n\n\n\n<li><strong>post_type<\/strong>&nbsp;\u2013 the content type identifier.<\/li>\n\n\n\n<li><strong>post_mime_type<\/strong>&nbsp;\u2013 only used for attachments, the MIME type of the uploaded file.<\/li>\n\n\n\n<li><strong>comment_count<\/strong>&nbsp;\u2013 total number of comments, pingbacks and trackbacks.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_postmeta\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_postmeta\">#<\/a>wp_postmeta<\/h4>\n\n\n\n<p>This table holds any extra information about individual posts. It is a vertical table using key\/value pairs to store its data, a technique WordPress employs on a number of tables throughout the database allowing WordPress core, plugins and themes to store unlimited data.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>meta_id<\/strong>&nbsp;\u2013 unique number assigned to each row of the table.<\/li>\n\n\n\n<li><strong>post_id<\/strong>&nbsp;\u2013 the ID of the post the data relates to. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_posts\">wp_posts<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>meta_key<\/strong>&nbsp;\u2013 an identifying key for the piece of data.<\/li>\n\n\n\n<li><strong>meta_value<\/strong>&nbsp;\u2013 the actual piece of data.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_comments\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_comments\">#<\/a>wp_comments<\/h4>\n\n\n\n<p>Any post that allows discussion can have comments posted to it. This table stores those comments and some specific data about them. Further information can be stored in&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_commentmeta\">wp_commentmeta<\/a>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>comment_ID<\/strong>&nbsp;\u2013 unique number assigned to each comment.<\/li>\n\n\n\n<li><strong>comment_post_ID<\/strong>&nbsp;\u2013 ID of the post this comment relates to. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_posts\">wp_posts<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>comment_author<\/strong>&nbsp;\u2013 name of the comment author.<\/li>\n\n\n\n<li><strong>comment_author_email<\/strong>&nbsp;\u2013 Email of the comment author.<\/li>\n\n\n\n<li><strong>comment_author_url<\/strong>&nbsp;\u2013 URL for the comment author.<\/li>\n\n\n\n<li><strong>comment_author_IP<\/strong>&nbsp;\u2013 IP Address of the comment author.<\/li>\n\n\n\n<li><strong>comment_date<\/strong>&nbsp;\u2013 time and date the comment was posted.<\/li>\n\n\n\n<li><strong>comment_date_gmt<\/strong>&nbsp;\u2013 GMT time and date the comment was posted.<\/li>\n\n\n\n<li><strong>comment_content<\/strong>&nbsp;\u2013 the actual comment text.<\/li>\n\n\n\n<li><strong>comment_karma<\/strong>&nbsp;\u2013 unused by WordPress core, can be used by plugins to help manage comments.<\/li>\n\n\n\n<li><strong>comment_approved<\/strong>&nbsp;\u2013 if the comment has been approved.<\/li>\n\n\n\n<li><strong>comment_agent<\/strong>&nbsp;\u2013 where the comment was posted from, eg. browser, operating system etc.<\/li>\n\n\n\n<li><strong>comment_type<\/strong>&nbsp;\u2013 type of comment: comment, pingback or trackback.<\/li>\n\n\n\n<li><strong>comment_parent<\/strong>&nbsp;\u2013 refers to another comment when this comment is a reply.<\/li>\n\n\n\n<li><strong>user_id<\/strong>&nbsp;\u2013 ID of the comment author if they are a registered user on the site. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_users\">wp_users<\/a>&nbsp;table.)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_commentmeta\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_commentmeta\">#<\/a>wp_commentmeta<\/h4>\n\n\n\n<p>This table stores any further information related to a comment.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>meta_id<\/strong>&nbsp;\u2013 unique number assigned to each row of the table.<\/li>\n\n\n\n<li><strong>comment_id<\/strong>&nbsp;\u2013 the ID of the post the data relates to. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_comments\">wp_comments<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>meta_key<\/strong>&nbsp;\u2013 an identifying key for the piece of data.<\/li>\n\n\n\n<li><strong>meta_value<\/strong>&nbsp;\u2013 the actual piece of data.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_terms\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_terms\">#<\/a>wp_terms<\/h4>\n\n\n\n<p>Terms are items of a taxonomy used to classify objects. Taxonomy what? WordPress allows items like posts and custom post types to be classified in various ways. For example, when creating a post in WordPress, by default you can add a category and some tags to it. Both \u2018Category\u2019 and \u2018Tag\u2019 are examples of a&nbsp;<a href=\"https:\/\/wordpress.org\/support\/article\/taxonomies\/\" target=\"_blank\" rel=\"noreferrer noopener\">taxonomy<\/a>, basically a way to group things together.<\/p>\n\n\n\n<p>To classify this post (how meta of me) I would give it a category of \u2018Guide\u2019 and tags of \u2018database\u2019 and \u2018mysql\u2019. The category and tags are terms that would be contained in this table.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>term_id<\/strong>&nbsp;\u2013 unique number assigned to each term.<\/li>\n\n\n\n<li><strong>name<\/strong>&nbsp;\u2013 the name of the term.<\/li>\n\n\n\n<li><strong>slug<\/strong>&nbsp;\u2013 the URL friendly slug of the name.<\/li>\n\n\n\n<li><strong>term_group<\/strong>&nbsp;\u2013 ability for themes or plugins to group terms together to use aliases. Not populated by WordPress core itself.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_termmeta\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_termmeta\">#<\/a>wp_termmeta<\/h4>\n\n\n\n<p><a href=\"https:\/\/wordpress.org\/support\/wordpress-version\/version-4-4\/\" target=\"_blank\" rel=\"noreferrer noopener\">WordPress 4.4<\/a>&nbsp;introduced a new table to store metadata about terms \u2013 wp_termmeta. Term meta can be accessed similar to post meta with helper functions&nbsp;<code>add_term_meta<\/code>,&nbsp;<code>get_term_meta<\/code>,&nbsp;<code>update_term_meta<\/code>&nbsp;and&nbsp;<code>delete_term_meta<\/code>.<\/p>\n\n\n\n<p>Term meta allows developers to store custom data about terms in a standard way. For example, you might want to attach an image against a post category to be displayed on the category archive page.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>meta_id<\/strong>&nbsp;\u2013 unique number assigned to each row of the table.<\/li>\n\n\n\n<li><strong>term_id<\/strong>&nbsp;\u2013 the ID of the related term. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_terms\">wp_terms<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>meta_key<\/strong>&nbsp;\u2013 an identifying key for the piece of data.<\/li>\n\n\n\n<li><strong>meta_value<\/strong>&nbsp;\u2013 the actual piece of data.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_term_taxonomy\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_term_taxonomy\">#<\/a>wp_term_taxonomy<\/h4>\n\n\n\n<p>Following the wp_terms example above, the terms \u2018Guide\u2019, \u2018database\u2019 and \u2018mysql\u2019 that are stored in wp_terms don\u2019t exist yet as a \u2018Category\u2019 and as \u2018Tags\u2019 unless they are given context. Each term is assigned a taxonomy using this table.<\/p>\n\n\n\n<p>The structure of this table allows you to use the same term across different taxonomies. For example \u2018Database\u2019 could be used as a category for posts and as a term of a custom taxonomy for a custom post type (think portfolio_category for portfolio items). The term of Database would exist once in wp_terms, but there would be two rows in wp_term_taxonomy for each taxonomy.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>term_taxonomy_id<\/strong>&nbsp;\u2013 unique number assigned to each row of the table.<\/li>\n\n\n\n<li><strong>term_id<\/strong>&nbsp;\u2013 the ID of the related term. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_terms\">wp_terms<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>taxonomy<\/strong>&nbsp;\u2013 the slug of the taxonomy. This can be the&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Taxonomies#Default_Taxonomies\" target=\"_blank\" rel=\"noreferrer noopener\">built in taxonomies<\/a>&nbsp;or any taxonomy registered using&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Function_Reference\/register_taxonomy\" target=\"_blank\" rel=\"noreferrer noopener\">register_taxonomy()<\/a>.<\/li>\n\n\n\n<li><strong>description<\/strong>&nbsp;\u2013 description of the term in this taxonomy.<\/li>\n\n\n\n<li><strong>parent<\/strong>&nbsp;\u2013 ID of a parent term. Used for hierarchical taxonomies like Categories.<\/li>\n\n\n\n<li><strong>count<\/strong>&nbsp;\u2013 number of post objects assigned the term for this taxonomy.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_term_relationships\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_term_relationships\">#<\/a>wp_term_relationships<\/h4>\n\n\n\n<p>So far we have seen how terms and their taxonomies are stored in the database, but have yet to see how WordPress stores the critical data when it comes to using taxonomies. The post exists in wp_posts and when we actually assign the category and tags through the WordPress dashboard it is the&nbsp;<a href=\"http:\/\/en.wikipedia.org\/wiki\/Junction_table\" target=\"_blank\" rel=\"noreferrer noopener\">junction table<\/a>&nbsp;that records that information. Each row defines a relationship between a post (object) in wp_posts and a term of a certain taxonomy in wp_term_taxonomy.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>object_id<\/strong>&nbsp;\u2013 the ID of the post object. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_posts\">wp_posts<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>term_taxonomy_id<\/strong>&nbsp;\u2013 the ID of the term \/ taxonomy pair. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_term_taxonomy\">wp_term_taxonomy<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>term_order<\/strong>&nbsp;\u2013 allow ordering of terms for an object, not fully used.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_users\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_users\">#<\/a>wp_users<\/h4>\n\n\n\n<p>WordPress\u2019 user management is one of its strongest features and one that makes it great as an application framework. This table is the driving force behind it.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ID<\/strong>&nbsp;\u2013 unique number assigned to each user.<\/li>\n\n\n\n<li><strong>user_login<\/strong>&nbsp;\u2013 unique username for the user.<\/li>\n\n\n\n<li><strong>user_pass<\/strong>&nbsp;\u2013 hash of the user\u2019s password.<\/li>\n\n\n\n<li><strong>user_nicename<\/strong>&nbsp;\u2013 display name for the user.<\/li>\n\n\n\n<li><strong>user_email<\/strong>&nbsp;\u2013 email address of the user.<\/li>\n\n\n\n<li><strong>user_url<\/strong>&nbsp;\u2013 URL of the user, e.g. website address.<\/li>\n\n\n\n<li><strong>user_registered<\/strong>&nbsp;\u2013 time and date the user registered.<\/li>\n\n\n\n<li><strong>user_activation_key<\/strong>&nbsp;\u2013 used for resetting passwords.<\/li>\n\n\n\n<li><strong>user_status<\/strong>&nbsp;\u2013 was used in Multisite pre WordPress 3.0 to indicate a spam user.<\/li>\n\n\n\n<li><strong>display_name<\/strong>&nbsp;\u2013 desired name to be used publicly in the site, can be user_login, user_nicename, first name or last name defined in wp_usermeta.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_usermeta\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_usermeta\">#<\/a>wp_usermeta<\/h4>\n\n\n\n<p>This table stores any further information related to the users. You will see other user profile fields for a user in the dashboard that are stored here.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>umeta_id<\/strong>&nbsp;\u2013 unique number assigned to each row of the table.<\/li>\n\n\n\n<li><strong>user_id<\/strong>&nbsp;\u2013 ID of the related user. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_users\">wp_users<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>meta_key<\/strong>&nbsp;\u2013 an identifying key for the piece of data.<\/li>\n\n\n\n<li><strong>meta_value<\/strong>&nbsp;\u2013 the actual piece of data.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_options\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_options\">#<\/a>wp_options<\/h4>\n\n\n\n<p>The options table is the place where all of the site\u2019s configuration is stored, including data about the theme, active plugins, widgets, and temporary cached data. It is typically where other plugins and themes store their settings.<\/p>\n\n\n\n<p>The table is another example of a vertical key\/value pair table to allow it to store all sorts of data for a variety of purposes.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>option_id<\/strong>&nbsp;\u2013 unique number assigned to each row of the table.<\/li>\n\n\n\n<li><strong>option_name<\/strong>&nbsp;\u2013 an identifying key for the piece of data.<\/li>\n\n\n\n<li><strong>option_value<\/strong>&nbsp;\u2013 the actual piece of data. The data is often&nbsp;<a href=\"https:\/\/deliciousbrains.com\/wp-migrate-db-pro\/doc\/serialized-data\/\">serialized<\/a>&nbsp;so must be handled carefully.<\/li>\n\n\n\n<li><strong>autoload<\/strong>&nbsp;\u2013 controls if the option is automatically loaded by the function&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Function_Reference\/wp_load_alloptions\" target=\"_blank\" rel=\"noreferrer noopener\">wp_load_alloptions()<\/a>&nbsp;(puts options into object cache on each page load).<\/li>\n<\/ul>\n\n\n\n<p>Did you know that when performing migrations of databases using&nbsp;<a href=\"https:\/\/deliciousbrains.com\/wp-migrate-db-pro\/\">WP Migrate DB Pro<\/a>&nbsp;you can tell the plugin to preserve specific options in the target database using the&nbsp;<a href=\"https:\/\/github.com\/deliciousbrains\/wp-migrate-db-pro-tweaks\/blob\/master\/wp-migrate-db-pro-tweaks.php#L34\" target=\"_blank\" rel=\"noreferrer noopener\">\u2018wpmdb_preserved_options\u2019<\/a>&nbsp;filter?<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_links\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_links\">#<\/a>wp_links<\/h4>\n\n\n\n<p>During the rise of popularity of blogging, having a blogroll (links to other sites) on your site was very much in fashion. This table holds all those links for you.<\/p>\n\n\n\n<p>Nowadays blogrolls are used less and less and as of WordPress 3.5 the administration of links was removed from the admin UI. The table remains in the database for backwards compatibility and you can use the old link manager UI using this&nbsp;<a href=\"https:\/\/wordpress.org\/plugins\/link-manager\/\" target=\"_blank\" rel=\"noreferrer noopener\">plugin<\/a>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>link_id<\/strong>&nbsp;\u2013 unique number assigned to each row of the table.<\/li>\n\n\n\n<li><strong>link_url<\/strong>&nbsp;\u2013 URL of the link.<\/li>\n\n\n\n<li><strong>link_name<\/strong>&nbsp;\u2013 name of the link.<\/li>\n\n\n\n<li><strong>link_image<\/strong>&nbsp;\u2013 URL of an image related to the link.<\/li>\n\n\n\n<li><strong>link_target<\/strong>&nbsp;\u2013 the target frame for the link. e.g. _blank, _top, _none.<\/li>\n\n\n\n<li><strong>link_description<\/strong>&nbsp;\u2013 description of the link.<\/li>\n\n\n\n<li><strong>link_visible<\/strong>&nbsp;\u2013 control if the link is public or private.<\/li>\n\n\n\n<li><strong>link_owner<\/strong>&nbsp;\u2013 ID of user who created the link. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_users\">wp_users<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>link_rating<\/strong>&nbsp;\u2013 add a rating between 0-10 for the link.<\/li>\n\n\n\n<li><strong>link_updated<\/strong>&nbsp;\u2013 time and date of link update.<\/li>\n\n\n\n<li><strong>link_rel<\/strong>&nbsp;\u2013 relationship of link.<\/li>\n\n\n\n<li><strong>link_notes<\/strong>&nbsp;\u2013 notes about the link.<\/li>\n\n\n\n<li><strong>link_rss<\/strong>&nbsp;\u2013 RSS address for the link.<\/li>\n<\/ul>\n\n\n\n<p>Someone has produced a helpful entity relationship diagram to explain the relationships between all the tables and posted it on the&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Database_Description#Database_Diagram\" target=\"_blank\" rel=\"noreferrer noopener\">WordPress codex<\/a>. This was created at version 3.8 but the structure is still current:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.deliciousbrains.com\/content\/uploads\/2017\/12\/12112837\/wordpress-database-tables-diagram.png\" alt=\"Diagram of the WordPress Database\" width=\"500\" height=\"705\" srcset=\"https:\/\/cdn.deliciousbrains.com\/content\/uploads\/2017\/12\/12112837\/wordpress-database-tables-diagram.png 500w, https:\/\/cdn.deliciousbrains.com\/content\/uploads\/2017\/12\/12112837\/wordpress-database-tables-diagram-273x385.png 273w\">&nbsp;<em>Source:&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Database_Description#Database_Diagram\" target=\"_blank\" rel=\"noreferrer noopener\">WordPress<\/a><\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"multisite-tour\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#multisite-tour\">#<\/a>WordPress Multisite Database Tour<\/h3>\n\n\n\n<p>When a WordPress site is&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Create_A_Network\" target=\"_blank\" rel=\"noreferrer noopener\">converted to a Multisite install<\/a>, a \u201cnetwork\u201d of subsites is created. The existing site is converted to the first subsite in the network. The database classes the network itself as a site (wp_site), and each subsite as a blog (wp_blogs).<\/p>\n\n\n\n<p>Certain tables are used only by a subsite, and a new set of tables are created every time a site is added to the network. Each set of tables is differentiated by the blog_id for the subsite used in the table prefix. e.g.&nbsp;<code>wp_2_posts<\/code>. The following tables are subsite specific:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_posts\">wp_commentmeta<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_comments\">wp_comments<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_links\">wp_links<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_options\">wp_options<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_postmeta\">wp_postmeta<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_posts\">wp_posts<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_term_relationships\">wp_term_relationships<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_term_taxonomy\">wp_term_taxonomy<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_terms\">wp_terms<\/a><\/li>\n<\/ul>\n\n\n\n<p>The&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_users\">wp_users<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_usermeta\">wp_usermeta<\/a>&nbsp;tables become global across the subsites in the network, and during the network installation a couple of extra columns are added to the wp_users table:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>spam<\/strong>&nbsp;\u2013 mark as a spam user.<\/li>\n\n\n\n<li><strong>deleted<\/strong>&nbsp;\u2013 mark as a deleted user.<\/li>\n<\/ul>\n\n\n\n<p>The following tables are created during the network installation to help manage the network:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_site\">wp_site<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_sitemeta\">wp_sitemeta<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_blogs\">wp_blogs<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_blogmeta\">wp_blogmeta<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_blog_versions\">wp_blog_versions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_signups\">wp_signups<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_registration_log\">wp_registration_log<\/a><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_site\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_site\">#<\/a>wp_site<\/h4>\n\n\n\n<p>This table will contain the one network for the installation although the table is structured to allow multiple networks in one database. This has never been implemented in WordPress itself, but can be managed using a plugin like&nbsp;<a href=\"https:\/\/wordpress.org\/plugins\/wp-multi-network\/\" target=\"_blank\" rel=\"noreferrer noopener\">WP Multi Network<\/a>&nbsp;or&nbsp;<a href=\"https:\/\/wordpress.org\/plugins\/networks-for-wordpress\/\" target=\"_blank\" rel=\"noreferrer noopener\">Networks for WordPress<\/a>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>id<\/strong>&nbsp;\u2013 unique number assigned to each site.<\/li>\n\n\n\n<li><strong>domain<\/strong>&nbsp;\u2013 base domain of the site.<\/li>\n\n\n\n<li><strong>path<\/strong>&nbsp;\u2013 path of the site.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_sitemeta\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_sitemeta\">#<\/a>wp_sitemeta<\/h4>\n\n\n\n<p>This table is like the wp_options for the network. It stores all the network related configuration and information, as well as other data such as settings for network enabled plugins.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>meta_id<\/strong>&nbsp;\u2013 unique number assigned to each row of the table.<\/li>\n\n\n\n<li><strong>site_id<\/strong>&nbsp;\u2013 ID of the related site. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_site\">wp_site<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>meta_key<\/strong>&nbsp;\u2013 an identifying key for the piece of data.<\/li>\n\n\n\n<li><strong>meta_value<\/strong>&nbsp;\u2013 the actual piece of data.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_blogs\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_blogs\">#<\/a>wp_blogs<\/h4>\n\n\n\n<p>All the subsites in the network are stored in this table.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>blog_id<\/strong>&nbsp;\u2013 unique number assigned to each blog (subsite).<\/li>\n\n\n\n<li><strong>site_id<\/strong>&nbsp;\u2013 the site ID that the blog belongs to. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_site\">wp_site<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>domain<\/strong>&nbsp;\u2013 base domain of the blog.<\/li>\n\n\n\n<li><strong>path<\/strong>&nbsp;\u2013 path of the blog.<\/li>\n\n\n\n<li><strong>registered<\/strong>&nbsp;\u2013 time and date when the blog was registered.<\/li>\n\n\n\n<li><strong>last_updated<\/strong>&nbsp;\u2013 time and date when the blog was last updated.<\/li>\n\n\n\n<li><strong>public<\/strong>&nbsp;\u2013 if the blog is publicly visible.<\/li>\n\n\n\n<li><strong>archived<\/strong>&nbsp;\u2013 if the blog is archived.<\/li>\n\n\n\n<li><strong>mature<\/strong>&nbsp;\u2013 if the blog is for a mature audience, ie. NSFW.<\/li>\n\n\n\n<li><strong>spam<\/strong>&nbsp;\u2013 if the blog has been marked as spam.<\/li>\n\n\n\n<li><strong>deleted<\/strong>&nbsp;\u2013 if the blog has been deleted.<\/li>\n\n\n\n<li><strong>lang_id<\/strong>&nbsp;\u2013 language ID of the blog.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_blogmeta\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_blogmeta\">#<\/a>wp_blogmeta<\/h4>\n\n\n\n<p>Introduced in&nbsp;<a href=\"https:\/\/make.wordpress.org\/core\/2019\/01\/28\/multisite-support-for-site-metadata-in-5-1\/\" target=\"_blank\" rel=\"noreferrer noopener\">WordPress 5.1<\/a>, wp_blogmeta is new database table to store metadata associated with sites. This means you don\u2019t need to use the options table to store data about the site and have to use&nbsp;<code>switch_to_blog()<\/code>&nbsp;before accessing it.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>meta_id<\/strong>&nbsp;\u2013 unique number assigned to each row of the table<\/li>\n\n\n\n<li><strong>blog_id<\/strong>&nbsp;\u2013 the blog ID that the meta belongs to. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_blogs\">wp_blogs<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>meta_key<\/strong>&nbsp;\u2013 an identifying key for the piece of data.<\/li>\n\n\n\n<li><strong>meta_value<\/strong>&nbsp;\u2013 the actual piece of data.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_blog_versions\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_blog_versions\">#<\/a>wp_blog_versions<\/h4>\n\n\n\n<p>When you upgrade the version of WordPress your site is running there are sometimes database changes. Upgrading a Multisite install to a new WordPress version will make those changes to the global tables. However, the set of tables for the subsites in the network will also need to have the upgrade applied. This table records the database version of each blog in the network, so WordPress knows which blogs need the upgrade and updates it after it has been run.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>blog_id<\/strong>&nbsp;\u2013 the blog ID. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_blogs\">wp_blogs<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>db_version<\/strong>&nbsp;\u2013 the current WordPress DB revision for the blogs tables.<\/li>\n\n\n\n<li><strong>last_updated<\/strong>&nbsp;\u2013 the time and date of the last upgrade.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_signups\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_signups\">#<\/a>wp_signups<\/h4>\n\n\n\n<p>This table stores data on blogs which have been signed up for but not activated when the network allows new sites to be registered. Once a site is activated the record is deleted and a record is created in wp_blogs.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>signup_id<\/strong>&nbsp;\u2013 unique number assigned to each row of the table.<\/li>\n\n\n\n<li><strong>domain<\/strong>&nbsp;\u2013 base domain of the blog.<\/li>\n\n\n\n<li><strong>path<\/strong>&nbsp;\u2013 path of the blog.<\/li>\n\n\n\n<li><strong>title<\/strong>&nbsp;\u2013 name of the blog.<\/li>\n\n\n\n<li><strong>user_login<\/strong>&nbsp;\u2013 username of the user registering the blog.<\/li>\n\n\n\n<li><strong>user_email<\/strong>&nbsp;\u2013 email of the user.<\/li>\n\n\n\n<li><strong>registered<\/strong>&nbsp;\u2013 time and date of registration.<\/li>\n\n\n\n<li><strong>activated<\/strong>&nbsp;\u2013 if the blog has been activated.<\/li>\n\n\n\n<li><strong>active<\/strong>&nbsp;\u2013 if the blog is active.<\/li>\n\n\n\n<li><strong>activation_key<\/strong>&nbsp;\u2013 activation key used in emails to active the blog.<\/li>\n\n\n\n<li><strong>meta<\/strong>&nbsp;\u2013 data about the signup.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wp_registration_log\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_registration_log\">#<\/a>wp_registration_log<\/h4>\n\n\n\n<p>This table records the user who registers a new site once it has been activated.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ID<\/strong>&nbsp;\u2013 unique number assigned to each row of the table.<\/li>\n\n\n\n<li><strong>email<\/strong>&nbsp;\u2013 email address of the user.<\/li>\n\n\n\n<li><strong>IP<\/strong>&nbsp;\u2013 IP Address of the user.<\/li>\n\n\n\n<li><strong>blog_id<\/strong>&nbsp;\u2013 the blog ID. (Reference to the&nbsp;<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#wp_blogs\">wp_blogs<\/a>&nbsp;table.)<\/li>\n\n\n\n<li><strong>date_registered<\/strong>&nbsp;\u2013 time and data the blog was registered.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"connecting\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#connecting\">#<\/a>Connecting to the WordPress Database<\/h3>\n\n\n\n<p>The most common way to connect to the WordPress database is with&nbsp;<a href=\"https:\/\/www.phpmyadmin.net\/\" target=\"_blank\" rel=\"noreferrer noopener\">phpMyAdmin<\/a>, a web based administration tool for MySQL databases. It comes installed on a variety of web hosts (usually through cPanel), as well as&nbsp;<a href=\"https:\/\/deliciousbrains.com\/xampp-mamp-local-dev\/\">local development environments<\/a>&nbsp;like MAMP.<\/p>\n\n\n\n<p>If you have SSH access to the server, you can use an app like&nbsp;<a href=\"https:\/\/tableplus.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">TablePlus<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"optimization\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#optimization\">#<\/a>WordPress Database and Query Optimization<\/h2>\n\n\n\n<p>If your site has frequent content updates or is a busy site, then your WordPress database will be performing many UPDATE and DELETE statements that over time, can lead to the MySQL data files becoming fragmented. This can cause unnecessarily large database sizes and can impact the performance of the database.<\/p>\n\n\n\n<p>Tables can be optimized using the&nbsp;<code>OPTIMIZE TABLE<\/code>&nbsp;MySQL statement or by using a database tool like phpMyAdmin. For tables using the InnoDB storage engine, the query rebuilds the table to update index statistics and frees up unused space. For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> OPTIMIZE TABLE wp_postmeta\n<\/code><\/pre>\n\n\n\n<p>There are other things you can do to keep the size of the WordPress database to a reasonable size to keep it fast. WordPress revisions functionality is a powerful and helpful part of the editing experience, but an infinite amount of revisions are stored by default, which is generally unnecessary and can be limited by setting the following constant:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>define( 'WP_POST_REVISIONS', 10 );\n<\/code><\/pre>\n\n\n\n<p>WordPress also autosaves posts, pages and custom post types every minute. This interval can be lengthened with the following constant:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>define( 'AUTOSAVE_INTERVAL', 300 );\n<\/code><\/pre>\n\n\n\n<p>WordPress will also store deleted posts in the trash for 30 days before it clears them out. This interval can be shortened with the following constant:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>define( 'EMPTY_TRASH_DAYS', 3 );\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"indexes\"><a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/#indexes\">#<\/a>Indexes<\/h3>\n\n\n\n<p>One of the most important factors in database speed and performance is a database index. An index can be created in one or more columns, which allows the database to quickly search for data in the columns, as well as efficiently ordering the columns.<\/p>\n\n\n\n<p>The default WordPress database has indexes on a number of columns across its tables. For example, the&nbsp;<code>wp_postmeta<\/code>&nbsp;table has the&nbsp;<code>post_id<\/code>&nbsp;column which holds a reference to the post that the piece of meta relates to.<\/p>\n\n\n\n<p>When searching for all the post meta for a specific post ID, this index makes the query as fast as possible. This is important on tables like the post meta table, which can have millions of rows of data.<\/p>\n\n\n\n<p>Indexes should be an important consideration when creating&nbsp;<a href=\"https:\/\/deliciousbrains.com\/creating-custom-table-php-wordpress\/\">custom WordPress tables<\/a>, especially if part of a plugin you plan to distribute. Table and SQL query performance on large scale sites should be thought about when designing table structures.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Posted from: <a href=\"https:\/\/codex.wordpress.org\/Database_Description\">https:\/\/codex.wordpress.org\/Database_Description<\/a><\/p>\n\n\n\n<p>Posted from:<a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/\"> https:\/\/deliciousbrains.com\/tour-wordpress-database\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Tables #wp_posts The posts table is arguably the most important table in the WordPress database. Its name sometimes throws people who believe it purely contains their blog posts. However, albeit badly named, it is an extremely powerful table that stores various types of content including posts, pages, menu items, media attachments and any custom&hellip;&nbsp;<a href=\"https:\/\/roglacup.com\/klaus62\/2024\/02\/20\/wordpress-database-description\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">WordPress database description<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":13075,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[399],"tags":[],"class_list":["post-13070","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/roglacup.com\/klaus62\/wp-json\/wp\/v2\/posts\/13070","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/roglacup.com\/klaus62\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/roglacup.com\/klaus62\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/roglacup.com\/klaus62\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/roglacup.com\/klaus62\/wp-json\/wp\/v2\/comments?post=13070"}],"version-history":[{"count":3,"href":"https:\/\/roglacup.com\/klaus62\/wp-json\/wp\/v2\/posts\/13070\/revisions"}],"predecessor-version":[{"id":13076,"href":"https:\/\/roglacup.com\/klaus62\/wp-json\/wp\/v2\/posts\/13070\/revisions\/13076"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/roglacup.com\/klaus62\/wp-json\/wp\/v2\/media\/13075"}],"wp:attachment":[{"href":"https:\/\/roglacup.com\/klaus62\/wp-json\/wp\/v2\/media?parent=13070"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/roglacup.com\/klaus62\/wp-json\/wp\/v2\/categories?post=13070"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/roglacup.com\/klaus62\/wp-json\/wp\/v2\/tags?post=13070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}