Query All The Post Types
Query All The Post Types is a lightweight developer tool that auto-detects every registered post type on your WordPress site and displays comprehensive information about each one. Post types are automatically grouped by origin. No configuration required. WooCommerce store owners: All of your core WooCommerce post types (products, orders, coupons, subscriptions, etc.) are grouped in a dedicated WooCommerce tab for easy access. Developers and AI users: As of version 2.1, Query All The Post Types now registers every post type as a discoverable entry in the WordPress Abilities API introduced in WordPress 6.9. Any authenticated tool, such as an MCP client, an AI assistant, or a custom admin dashboard, can query your site and get a complete, structured inventory of every post type, what it supports, and how it’s configured. As of version 2.2, QATP includes a built-in API Explorer so you can browse, query, and share your site’s post type data directly from the WordPress admin without writing any code. Which makes building Custom Post Types easier and verifying the production site has all of the data needed. Features Auto-Detection – Discovers all post types registered by WordPress core, plugins, and themes Tabbed Interface – Post types organized into logical groups for easy navigation. Comprehensive Data – View all registration settings, REST API config, supports, taxonomies, and labels REST API Links – Clickable endpoint URLs for post types exposed to the REST API WooCommerce Tab – Dedicated purple tab groups all your WooCommerce post types (products, orders, coupons, and more) Quick Actions – View All and Add New buttons for post types with admin UI WordPress Abilities API – Every post type registered as a machine-readable ability (WordPress 6.9+) API Explorer – Browse, query, and copy commands for any post type directly from the admin (version 2.2+) Post Type Groups WordPress Core – Public – Built-in types with a UI (post, page, attachment) WordPress Core – Internal – Built-in types without a UI (revision, nav_menu_item, wp_template, etc.) WooCommerce – Products, orders, coupons, subscriptions, and more (when active) Advanced Custom Fields / ACF Pro – Field groups, post types, taxonomies, and options pages (when active) Elementor – Elementor library, floating buttons, and component types (when active) LearnDash – Courses, lessons, topics, quizzes, assignments, and more (when active) BuddyPress – Groups, member types, and email types (when active) GiveWP – Donation forms and payment types (when active) Easy Digital Downloads – Downloads and EDD-registered types (when active) AppPresser – Push notification and log types (when active) Plugin/Theme – Public – Custom post types from any other plugin or theme, with a public UI Plugin/Theme – Internal – Custom post types from any other plugin or theme, without a public UI Data Displayed Per Post Type Slug, description, and all boolean settings Public, publicly queryable, show UI, show in nav menus, show in admin bar REST API: show in REST, REST base, REST namespace, REST controller class Has archive, exclude from search, capability type, map meta cap Hierarchical, rewrite rules, query var, menu position, menu icon Can export, delete with user Supported features (title, editor, thumbnail, excerpt, comments, etc.) Associated taxonomies with admin links All registered labels (expandable section) REST API endpoint URL (clickable) WordPress Abilities API Starting in version 2.1, QATP registers every post type as a WordPress Ability: a machine-readable declaration that authenticated tools can query via the REST API. This feature requires WordPress 6.9 or later. On older versions, QATP continues to work normally and the Abilities API integration is silently skipped. What gets registered Each post type is registered as an ability under the qatp/ namespace. For example with WordPress Core, qatp/post, qatp/product, qatp/page. Abilities are grouped into categories matching the tabs you see in the admin UI: qatp-core-public, qatp-core-internal, qatp-woocommerce, and so on. Running an ability returns a structured data object for that post type: slug – the registered post type name label – plural label (e.g. “Posts”) singular – singular label (e.g. “Post”) public, show_ui, show_in_rest, hierarchical – boolean flags rest_base – the REST API base URL segment supports – array of supported features (title, editor, thumbnail, etc.) taxonomies – array of associated taxonomy slugs Who can access it Access requires the manage_options capability, meaning site administrators only. This is intentional. Post type registration data can reveal details about your site’s plugin stack and data architecture. It is not exposed publicly. API Explorer The API Explorer is a built-in interface for browsing and querying your site’s WordPress Abilities directly from the admin. It is available as of version 2.2. To open it, go to Tools > Query Post Types and click API Explorer in the toggle at the top right of the page. How it works When you open the Explorer, you see a row of pills across the top. Each pill represents an ecosystem on your site: WooCommerce, LearnDash, GiveWP, core WordPress types, and so on. Click a pill to filter the results to that group. Click All to see everything. Below the pills, each post type on your site appears as a card. The card shows the ability name, the label, and which ecosystem it belongs to. Click a card to select it. A Run button appears below the cards and Command Reference. Click Run button to fetch the live data for that ability and see the full JSON response displayed below. The Command Reference Every time you select a card and run an ability, the Command Reference panel updates automatically. It shows you three ways to fetch that same data yourself: REST URL – a clickable link you can open directly in your browser while logged in as an admin WP-CLI – a ready-to-copy WP-CLI command that runs the same request from the terminal, authenticated as your current user account curl – a curl command using Application Password authentication that works from any terminal or HTTP client REST URL example: https://yoursite.com/wp-json/wp-abilities/v1/abilities/qatp/post/run?_wpnonce=abc123 The nonce is generated automatically and appended to the URL. The link works in your browser as long as you are logged in as an admin. WP-CLI example: wp --user=1 eval 'print_r(rest_do_request(new WP_REST_Request("GET", "/wp-abilities/v1/abilities/qatp/post/run")));' The --user= flag is automatically set to your current WordPress user ID. You do not need to edit the command. curl example: curl -s -u "admin:application_password" "https://yoursite.com/wp-json/wp-abilities/v1/abilities/qatp/post/run" Replace admin with your WordPress username and application_password with an Application Password generated from your profile. See the Application Passwords section below. Application Passwords for curl The curl command in the Command Reference uses Application Password authentication. Application Passwords are a built-in WordPress feature (available since WordPress 5.6) that let external tools authenticate with the REST API without using your main account password. To generate an Application Password: Go to Users > Your Profile in your WordPress admin Scroll down to the Application Passwords section Enter a name for the password (e.g. “QATP curl”) Click Add New Application Password Copy the generated password immediately. WordPress does not show it again. Use the generated password in place of application_password in the curl command. Spaces in the generated password are fine — you can include them as-is or remove them. Note: The X-WP-Nonce authentication approach used in some WordPress tutorials only works when a browser session cookie is also present. It does not work for standalone curl requests from a terminal. Application Passwords are the correct approach for curl and all external HTTP clients. Selecting multiple post types You can select more than one card at a time. Click additional cards to add them to your selection. A bar appears above the results showing how many abilities you have selected, with a Clear button to start over. When you have two or more abilities selected, the Command Reference updates to show one curl command per selected ability, stacked together. This gives you a ready-made set of commands you can run in sequence to pull data for all your selected post types at once. Click Run All to fetch all selected abilities at once and see their responses stacked in the drilldown panel. This is useful when you want to compare post type configurations side by side. You can mix and match across ecosystems. Select a LearnDash course, a GiveWP form, and a WooCommerce product all at the same time to get the commands for all three in one block. Shareable links The URL in your browser updates as you make selections. If you are in Explorer mode with abilities selected, the URL encodes that state using a hash fragment: https://yoursite.com/wp-admin/tools.php?page=query-all-the-post-types#mode=explorer&abilities=qatp/product,qatp/course Copy and paste the URL into Slack, an email, or a document. Anyone with admin access on that site can open it and land in the exact same view, with the same abilities selected and the Command Reference already populated. The back button also works as expected. Navigate to a previous selection by pressing back, just like any other page. Giving the Explorer output to Claude The API Explorer is designed to work with AI assistants. Copy the curl commands from the Command Reference and paste them into a conversation with Claude. Claude can read the JSON responses and use them to understand your site’s post type structure, answer questions about your data architecture, or help you write code that works with your specific setup. You can also share the URL directly. A URL with abilities pre-selected is a compact way to give someone, or an AI tool, a pointer to exactly what you want them to look at. How to browse without the Explorer In your browser: Go to Tools > Query Post Types in your WordPress admin. The sidebar shows a Browse Abilities API button. Click it and it opens the endpoint in a new tab with authentication already handled. Install a JSON Formatter browser extension (available for Chrome and Firefox) to make the output readable. Note: visiting the endpoint URL directly in your browser without clicking the button will return a 401 error. The WordPress REST API requires a valid nonce for cookie-authenticated requests. The button generates one automatically. With WP-CLI: See all QATP abilities and their descriptions: wp --url=https://yoursite.com --user=1 eval '$r = rest_do_request(new WP_REST_Request("GET", "/wp-abilities/v1/abilities")); $qatp = array_filter($r->get_data(), fn($a) => strpos($a["name"], "qatp/") === 0); foreach ($qatp as $a) { echo $a["name"] . "\n " . $a["label"] . " - " . $a["description"] . "\n"; }' Run a specific ability to get full structured data: wp --url=https://yoursite.com --user=1 eval '$r = rest_do_request(new WP_REST_Request("GET", "/wp-abilities/v1/abilities/qatp/post/run")); echo json_encode($r->get_data(), JSON_PRETTY_PRINT);' Replace --user=1 with the ID of any administrator account on your site if user ID 1 is not an admin. With curl: List all QATP abilities: curl -s -u "admin:application_password" "https://yoursite.com/wp-json/wp-abilities/v1/abilities?category=qatp-core-public" Run a specific ability: curl -s -u "admin:application_password" "https://yoursite.com/wp-json/wp-abilities/v1/abilities/qatp/post/run" With Postman or any REST client: Create an Application Password in your WordPress admin under Users > Your Profile > Application Passwords. Use HTTP Basic Auth with your username and the generated password. Send a GET request to https://yoursite.com/wp-json/wp-abilities/v1/abilities.
Structure Viewer – File Explorer & AI Context Builder
Structure Viewer is a WordPress file explorer and AI context builder for developers — browse, inspect, view source code, and export the complete file structure of any installed plugin or theme, directly from your WordPress admin dashboard. No FTP, no cPanel, no server access needed. Open any file, read its source code with syntax highlighting, search across your entire codebase, and export the full file tree as TXT, JSON, XML, PDF, or clipboard copy — all without leaving WordPress. And if you work with any AI coding tool — ChatGPT, Claude, Cursor, Copilot, Gemini, or anything else — Structure Viewer is the missing first step. Export your plugin’s complete structure as ready-to-use AI context in one click, and give your AI the full codebase map before you ask it anything. — 🤖 Built for AI-Assisted Development Modern coding workflows look different than they did two years ago. You’re working alongside an AI, and your AI works better when it has structural context. Structure Viewer is designed for exactly that workflow: Tree-format exports purpose-built for LLM context windows — clean ASCII, no markdown noise, token-efficient Works with any AI tool — ChatGPT, Claude, Cursor, Copilot, Gemini, Perplexity, or any other chat or coding assistant One-click clipboard copy — emoji tree format that pastes into any AI chat with perfect alignment Filter before you export — exclude node_modules, vendor, build artifacts, or anything you don’t want bloating your context Read source inline — open any file in the browser modal, copy the snippet you need, paste into your AI conversation Auto-redact secrets — opt-in masking of API keys, tokens, passwords, AWS / Stripe / GitHub keys, JWTs and PEM private keys before content leaves the server — paste into any AI tool without leaking credentials Pro: Comparator — diff two versions of a plugin and feed only the changed lines to your AI for targeted code review Pro: FlatPack — extract just the PHP, just the JS, or just the CSS from any plugin and hand the AI a focused codebase WP-CLI exports — script structure dumps directly into your AI agent’s working directory Stop pasting one file at a time. Give the AI the whole map first, then ask better questions. — 🗂️ File Explorer See exactly what is inside every plugin and theme: Interactive tree view — expandable folders with icons for every file type (PHP, JS, CSS, images, JSON, XML, and more) Searchable item picker — switch between All Plugins, individual plugins, All Themes, and individual themes instantly Live tree search — type to filter files in real time, jump between matches with next/prev navigation All-mode plugin filter — when viewing All Plugins or All Themes, the live search filters the plugin or theme list by name so you can find the one you want fast File type tag strip — one click to show only PHP files, only CSS, only images — whatever you need File size and modification dates — see when each file was last changed, toggle on/off Recently Viewed panel — jump back to any file or folder you have already opened 📄 File Viewer Click any file to read it right there in your browser: Inline modal with syntax highlighting for all common languages File metadata: size, line count, last modified timestamp Auto-redact secrets badge — shown in the modal when redaction is active so you know the displayed content has been sanitised Fullscreen mode for reading long files without scrolling the page One-click download — get any file with the correct MIME type and original filename preserved 🔍 Search Find any file across your entire plugin or theme in seconds: Real-time search — results appear as you type, no page reloads Extension search — prefix with a dot to filter by type: .php, .js, .css, .json File type dropdown for quick narrowing Results show full relative path, file size, and last modified date 📤 Export Share or document your plugin structures in any format: TXT — clean ASCII tree, perfect for documentation, tickets, and AI context windows JSON — nested structure with file sizes and timestamps for programmatic use XML — standardized hierarchical format PDF — formatted document with header, page numbers, and automatic page breaks Clipboard — one-click emoji tree copy for pasting into Slack, Notion, or GitHub 📊 Dashboard Your WordPress file ecosystem at a glance: Stat tiles for total plugins, active/inactive split, total themes, and total files indexed Largest plugins table — instantly see which plugins are heaviest with file count and size bars WordPress environment strip: WP version, PHP version, active theme, site URL ⚙️ Settings Make it yours: Dark mode / Light mode — toggle instantly from the plugin header or apply via Settings; rendered server-side with no flash on load Accent color picker — Emerald (default), Violet, Blue, Amber, or Rose Auto-redact secrets on export (new in 2.2.2) — opt-in toggle that masks credentials in viewed and downloaded file content Exclude hidden files, system directories, and custom patterns (node_modules, .git, vendor) Settings auto-save with instant confirmation toast 💻 WP-CLI Automate structure exports from the command line: wp structure-viewer export plugin wp structure-viewer export theme wp structure-viewer list plugins wp structure-viewer list themes — 🚀 Structure Viewer Pro Unlock two powerful Pro tools for developers who need to go deeper. 🔀 Comparator — Know Exactly What Changed Ever updated a plugin and wondered what actually changed? Comparator shows you a precise, color-coded, line-by-line diff between any two versions — so you can audit updates, review customizations, and catch unwanted changes before they cause problems. Compare two plugin ZIPs side by side Compare an installed plugin or theme against any uploaded ZIP Compare two individual files for a targeted spot-check Added lines in green, removed in red, changed lines clearly highlighted Works on large plugins and minified CSS/JS files — auto-tokenizes before diffing Expand/collapse per-file diff blocks to focus on what matters 📦 FlatPack — Extract Only What You Need Need just the CSS from a plugin? Or all the PHP files for a code review? FlatPack extracts any plugin or theme ZIP and flattens it into a single, clean download — no nested folders, no hunting through directory trees. Upload any plugin or theme ZIP and see all its files in a live preview instantly Filter by PHP, CSS and JS, images, or any custom extension — preview updates live Only the filtered files are included in the output ZIP Smart collision-safe naming: duplicate basenames get a folder prefix automatically Download a single flat ZIP in seconds Upgrade to Pro from within the plugin — Settings → License → Upgrade to Pro. — 🔒 Security Security is not an afterthought. Every request to Structure Viewer is protected: Nonce verification on all AJAX endpoints manage_options capability required — administrators only, no public access Path traversal prevention — file paths resolved with realpath() and verified Input sanitized with wp_unslash() + sanitize_text_field() before use All output escaped before rendering Auto-redact secrets (opt-in) — strips API keys, tokens, passwords, AWS / Stripe / GitHub / Google / Slack keys, JWTs, and PEM private keys from viewed and downloaded file content Pro upload directories protected with .htaccess deny rules ⚡ Performance Structure Viewer is invisible to your site’s frontend: Assets load only on the Structure Viewer admin page — zero impact on your site Dashboard stats cached with a 6-hour transient Lazy tree loading — only trees you expand are scanned FlatPack preview filtering is entirely client-side — no extra AJAX round-trips No external HTTP requests at runtime