{"id":229,"date":"2026-03-27T12:49:22","date_gmt":"2026-03-27T12:49:22","guid":{"rendered":"https:\/\/nativecustomfields.com\/?post_type=ncf-documentation&#038;p=229"},"modified":"2026-03-27T13:12:18","modified_gmt":"2026-03-27T13:12:18","slug":"developer-guide","status":"publish","type":"ncf-documentation","link":"https:\/\/nativecustomfields.com\/docs\/developer-guide\/","title":{"rendered":"Developer Guide"},"content":{"rendered":"<div class=\"wp-markdown-block theme-github wp-block-telex-block-telex-wp-markdown-block\" data-theme=\"github\">\n\t\t\t\t<nav class=\"wp-markdown-block-toc\"><h2>Table of Contents<\/h2><ul><li><a href=\"#chapters\">Chapters<\/a><\/li><li>&nbsp;&nbsp;<a href=\"#1-configuration-storage\">1) Configuration Storage<\/a><\/li><li>&nbsp;&nbsp;<a href=\"#2-runtime-data-storage\">2) Runtime Data Storage<\/a><\/li><li>&nbsp;&nbsp;<a href=\"#3-accessing-data\">3) Accessing Data<\/a><\/li><li>&nbsp;&nbsp;<a href=\"#4-options-page-storage\">4) Options Page Storage<\/a><\/li><li>&nbsp;&nbsp;<a href=\"#5-request-flow\">5) Request Flow<\/a><\/li><li>&nbsp;&nbsp;<a href=\"#6-hooks\">6) Hooks<\/a><\/li><li>&nbsp;&nbsp;<a href=\"#7-practical-notes\">7) Practical Notes<\/a><\/li><\/ul><\/nav>\t\t<div class=\"markdown-body\">\n\t\t<h1 id=\"native-custom-fields-developer-guide\">Native Custom Fields Developer Guide<\/h1>\n<p>This guide explains how Native Custom Fields stores and serves configuration and runtime data, and how developers can retrieve that data using native WordPress APIs.<\/p>\n<h2 id=\"chapters\">Chapters<\/h2>\n<h3 id=\"1-configuration-storage\">1) Configuration Storage<\/h3>\n<p>Explains how builder-level configurations (Post Types, Meta Fields, Taxonomies, etc.) are stored in the <code>wp_options<\/code> table.<\/p>\n<h3 id=\"2-runtime-data-storage\">2) Runtime Data Storage<\/h3>\n<p>Details where user-entered data is stored in native WordPress tables (<code>wp_options<\/code>, <code>wp_postmeta<\/code>, <code>wp_termmeta<\/code>, <code>wp_usermeta<\/code>).<\/p>\n<h3 id=\"3-accessing-data\">3) Accessing Data<\/h3>\n<p>Provides examples of how to retrieve metadata using native WordPress functions like <code>get_post_meta()<\/code>, <code>get_term_meta()<\/code>, and <code>get_user_meta()<\/code>.<\/p>\n<h3 id=\"4-options-page-storage\">4) Options Page Storage<\/h3>\n<p>Explains how Options Page data is stored as a single serialized option in <code>wp_options<\/code> and how to retrieve it.<\/p>\n<h3 id=\"5-request-flow\">5) Request Flow<\/h3>\n<p>Describes the data flow from Admin UI through REST API endpoints and Services to the database.<\/p>\n<h3 id=\"6-hooks\">6) Hooks<\/h3>\n<p>A comprehensive list of action and filter hooks available for extending the plugin&#8217;s functionality.<\/p>\n<h3 id=\"7-practical-notes\">7) Practical Notes<\/h3>\n<p>Best practices and key takeaways for developers working with Native Custom Fields.<\/p>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"parent":0,"menu_order":0,"template":"","meta":[],"class_list":["post-229","ncf-documentation","type-ncf-documentation","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/nativecustomfields.com\/wp-json\/wp\/v2\/ncf-documentation\/229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nativecustomfields.com\/wp-json\/wp\/v2\/ncf-documentation"}],"about":[{"href":"https:\/\/nativecustomfields.com\/wp-json\/wp\/v2\/types\/ncf-documentation"}],"author":[{"embeddable":true,"href":"https:\/\/nativecustomfields.com\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/nativecustomfields.com\/wp-json\/wp\/v2\/media?parent=229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}