# Field Atlas — WordPress portfolio asset Field Atlas is an original fictional, category-aware travel guide plugin concept responding to a real WordPress Jobs brief for flexible content, optional fields, and responsive native images. It is a runnable plugin asset, not a client engagement or a claim of commissioned work. It uses WordPress core post types, taxonomies, post metadata, media picker, and image APIs. **It does not use or claim ACF Pro.** ## Install Copy `plugin/field-atlas/` into `wp-content/plugins/field-atlas/`, activate **Field Atlas Guides**, then add Guide Categories named Planning (`planning`) and Outdoors (`outdoors`). Create a guide, assign one of those categories, add its optional intro/summary and sections, and publish. The plugin owns a standalone, responsive single-guide page at `/guides/{slug}/`; save Permalinks again if that route needs a rewrite refresh. The theme continues to own styles outside the plugin's `fa-` component classes. ## Content model and renderer The `fa_guide` post type supports title and featured image. `fa_guide_category` is hierarchical. Stored metadata: - `_fa_intro`: optional plain-text lead, maximum 500 characters. - `_fa_summary`: optional plain-text summary, maximum 1,000 characters. - `_fa_sections`: ordered list (up to 30) of typed section records. Text and image-text sections store `body`; checklist sections store up to 20 `items`; image-text stores `image_id` as a WordPress attachment ID. Planning permits `text` and `checklist`. Outdoors permits `text`, `image_text`, and `checklist`. Unknown categories and disallowed section types are omitted at save and render time. Empty optional values and wholly empty sections produce no frontend wrappers. All editorial input is plain text; output is escaped. Images are emitted with `wp_get_attachment_image()` for WordPress responsive `srcset` and `sizes` behavior. Templates and integrations can call `fa_render_guide( $post_id )` to echo the semantic guide article. The default single template is `plugin/field-atlas/templates/single-fa_guide.php` and calls that public renderer inside a standalone Field Atlas document shell. ## Extend category layouts Use `fa_guide_layouts` to allow existing section types under another registered category slug, without replacing the single template: ```php add_filter( 'fa_guide_layouts', function ( $layouts ) { $layouts['culture'] = array( 'text', 'checklist' ); return $layouts; } ); ``` Create the `culture` term in `fa_guide_category`. The filter accepts the built-in `text`, `checklist`, and `image_text` section types; unknown types are discarded. The renderer remains responsible for layout and safe output. ## Source and validation notes The plugin is self-contained PHP, JavaScript, and CSS with no external dependencies. Useful local checks for the portfolio review are: activate the plugin and visit a Planning and an Outdoors guide; verify drag-free reordering with the accessible up/down controls and image selection through the Media Library; then exercise empty fields, a mismatched category/type, autosave, and an unprivileged save to confirm omission and protection. The seed/runtime verification is performed separately against the isolated local WordPress instance; this folder does not contain WordPress core or runtime credentials.