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.
Top keywords
- post41×2.15%
- types26×1.36%
- wordpress25×1.31%
- abilities24×1.26%
- rest24×1.26%
- api20×1.05%
- qatp20×1.05%
- admin19×1.00%
- application17×0.89%
- password17×0.89%
- post types17×0.89%
- type17×0.89%
VigIA – AI Visibility, Analytics & Control
VigIA (Spanish for “lookout” or “watchman”, incorporating “IA” – Spanish for “AI”) is a complete AI visibility toolkit for WordPress. Monitor 60+ AI crawlers, control access to your content, and optimize how AI systems discover and understand your site. What does VigIA do? Scores your AI visibility with a 100-point analyzer covering 20 checks across 5 categories Tracks AI crawlers visiting your site (GPTBot, ClaudeBot, PerplexityBot, and 60+ others) Provides detailed analytics with advanced filters, server-side pagination, and exportable reports with metadata banner Blocks unwanted crawlers via PHP (403 response) Manages robots.txt rules for AI crawlers with compliance monitoring Sends email alerts about crawler activity (daily, weekly, or monthly) Generates llms.txt files to help AI systems understand your site Serves markdown endpoints for posts, pages, taxonomy archives (categories, tags, WooCommerce product categories, custom taxonomies) and WooCommerce products with schema-like data Generates JSON-LD structured data with Site Identity and AI Discovery signals Exposes abilities for AI agents and automation tools (WordPress 6.9+) Key Features AI Visibility Analyzer * 100-point scoring system with letter grades (A+ to F) * 20 individual checks across 5 categories * Access & AI Discovery (37 pts): robots.txt, AI bot directives, Content Signals, llms.txt, sitemap, RSS feed * Structured Data & Semantic Context (25 pts): JSON-LD schemas, Open Graph, Twitter Cards, meta description, canonical URL * Content Structure & Readability (20 pts): heading hierarchy, semantic HTML5, image alt text, content/HTML ratio * AI Interaction & Distribution (8 pts): markdown delivery, AI share buttons * Access Performance (10 pts): TTFB measurement * Smart recommendations with direct links to VigIA features and plugin suggestions * Analyze any page on your site with URL autocomplete selector * Results cached for 24 hours with manual re-analyze option Analytics Dashboard * Total visits, unique crawlers, and pages crawled statistics * Timeline chart with daily breakdown * Category distribution (AI Training, AI Search, AI Assistant, Data Scraper) * Top crawlers and most crawled pages tables with paginated navigation * Share Buttons & AI-powered Summaries integration: see share button clicks per page * Recent activity log with content type and HTTP status columns (color coded by status family) * Advanced filters: multi-select crawler picker, content type, HTTP status code, and configurable date range * Server-side pagination with four-button pager (first, previous, next, last) — operates over the full database, not just the latest 500 rows * Period comparison functionality * CSV export with a metadata banner (site name, site URL, export type, date range, export timestamp, applied filters) * “Export filtered CSV” button that downloads exactly what the active filters return, with vigia-filtered-YYYY-MM-DD.csv filename * Content type detection distinguishes Home, Post, Page, Product, custom CPTs, Category archive, Tag archive, Date/Author archive, Feed, Sitemap, REST API, File, Admin / login attempts (/wp-admin, /wp-login.php), WordPress system (admin-ajax, xmlrpc, wp-cron, wp-comments-post), 404 Not found, and Other Crawler Blocking * Block crawlers via PHP with 403 Forbidden response * Quick block dropdown in analytics dashboard * Manage blocks from Extras page * Works on any server (Apache, Nginx, LiteSpeed, etc.) Robots.txt Management * Add Disallow rules for AI crawlers * Visual preview of your robots.txt * Compliance monitoring: see which crawlers ignore your rules * One-click blocking for non-compliant crawlers * Works with both physical and virtual robots.txt Email Alerts * Daily, weekly, or monthly reports * Three detail levels: Minimal, Normal, Complete * Non-compliant crawler warnings * Activity comparison with previous period Markdown for Agents * Serve posts, pages and any public post type as optimized markdown for AI agents * Serve taxonomy archive pages (categories, tags, WooCommerce product categories, custom taxonomies) as markdown — disabled by default, opt in per taxonomy * Dedicated .md URL endpoints (e.g., /your-post.md, /category/news.md, /product-category/electronics.md) * Accept: text/markdown content negotiation on posts and taxonomy archive pages * Discoverability via Link HTTP headers and HTML tags * YAML frontmatter for posts: title, date, modified, author, image, categories, tags, post type, lang * YAML frontmatter for taxonomy terms: title, description, url, type, taxonomy, parent, count, image (term meta), lang * WooCommerce product frontmatter adds schema-like fields: sku, product_type, price, regular_price, sale_price, currency, availability, stock_quantity, rating, rating_count, review_count * Taxonomy term body includes the term description (rendered through the_content), the list of direct child terms in hierarchical taxonomies, and an excerpt of the latest posts/products assigned to the term * Product listings inside product_cat archives include an inline summary with formatted price, “was X” on sale items, star rating and out-of-stock flag * Respects blocking rules (blocked crawlers get 403) and LLMs.txt exclusion filters * Per-term noindex detection from Yoast SEO, Rank Math, All in One SEO and SEOPress * Analytics integration: tracks markdown requests per crawler * X-Markdown-Tokens response header * Filters: vigia_markdown_post_eligible, vigia_markdown_term_eligible, vigia_markdown_term_posts_limit * Follows the Cloudflare Markdown for Agents standard LLMs.txt Generator * Select content by post type with one click * Filter by taxonomies (categories, tags, custom) * Manual include/exclude with AJAX search * Exclude by URL patterns (wildcards supported) * SEO plugin integration (auto-exclude noindex content) * Auto-regeneration (daily, weekly, monthly) * Robots.txt integration (add llms.txt and llms-full.txt references) * Generate llms.txt and llms-full.txt files * Full content or excerpt mode * Compatible with Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, and Native SEO NoIndexer JSON-LD Structured Data * Generate WebSite and Organization/Person schema for site identity * AI Discovery: ReadAction pointers to llms.txt, llms-full.txt, and Markdown for Agents endpoints * Social profiles and sameAs links for brand identity across the web * SearchAction for Google sitelinks search box * Media library integration for logo selection * SEO plugin conflict detection (Yoast, Rank Math, AIOSEO, SEOPress, The SEO Framework) * Choose output page (front page or any published page) * Live JSON-LD preview with real-time updates * Smart integration with LLMs.txt and Markdown for Agents features Supported AI Crawlers VigIA monitors 60+ AI crawlers including: OpenAI: GPTBot, OAI-SearchBot, OAI-AdsBot, ChatGPT-User Anthropic: ClaudeBot, Claude-SearchBot, Claude-User, Claude-Code Google: Google-Extended, GoogleOther, Gemini-Deep-Research, Google-NotebookLM Perplexity: PerplexityBot, Perplexity-User Meta: Meta-ExternalAgent, FacebookBot, Meta-WebIndexer Amazon: Amazonbot, Amzn-SearchBot, bedrockbot Mistral: MistralAI-User, MistralAI-Index Microsoft: BingBot ByteDance: Bytespider Apple: Applebot-Extended And many more… Privacy Focused VigIA stores visitor data locally in your WordPress database. No data is sent to external servers. Abilities API VigIA is one of the first WordPress plugins to implement the Abilities API introduced in WordPress 6.9. This API allows AI agents, automation tools, and external systems to discover and interact with VigIA’s functionality in a standardized, secure way. What are Abilities? Abilities are self-contained units of functionality that VigIA exposes through WordPress’s central registry. Each ability has defined inputs, outputs, and permissions, making it easy for automation tools to understand and use them. Available Abilities VigIA registers the following abilities: Analytics vigia/get-crawler-stats – Get statistics about AI crawler visits (total visits, unique crawlers, pages crawled) vigia/get-top-crawlers – Get a ranked list of most active AI crawlers vigia/get-top-pages – Get the most crawled pages on your site Blocking vigia/get-blocked-items – List all blocked crawlers and IP addresses vigia/block-crawler – Block a crawler by User-Agent pattern vigia/unblock-crawler – Remove an existing block Robots.txt vigia/get-robots-rules – Get current AI crawler rules in robots.txt vigia/add-robots-disallow – Add a Disallow directive for a crawler vigia/remove-robots-rule – Remove a robots.txt rule Use Cases Automated monitoring: AI agents can query crawler statistics and alert you to anomalies Reactive blocking: Automation tools can block crawlers that repeatedly ignore robots.txt External dashboards: Aggregate data from multiple WordPress sites with VigIA installed WP-CLI integration: Future command-line access through the Abilities API n8n / Make workflows: Build custom automation flows using VigIA’s abilities Requirements The Abilities API ships with WordPress 6.9 and later. On older WordPress versions, VigIA works normally but abilities and MCP are not available. MCP Server (Model Context Protocol) VigIA exposes its 9 abilities as native MCP tools to any MCP-compatible client (Claude Code, Cursor, Claude Desktop, Codex CLI, Antigravity, Continue, Cline, Zed and similar) using the official WordPress MCP Adapter. The adapter ships bundled with the plugin, so the MCP endpoint is active right after installation — no Composer step or terminal access required. Requirements WordPress 6.9 or later (provides the Abilities API) Quick connect (recommended) Open VigIA > Extras > MCP and click “Generate password and connection commands”. The plugin creates a dedicated Application Password named VigIA MCP and renders ready-to-paste commands for Claude Code, Cursor, Claude Desktop and a generic block (URL + Authorization header) for any other MCP client. The plain password is shown only once. If you lose it, revoke the entry from the same panel and generate a new one. Endpoint https://your-site.example/wp-json/vigia/v1/mcp The endpoint uses HTTP Basic auth with the WordPress Application Password. The user must have the manage_options capability. Connecting Claude Code Quick Connect builds the full command for you. The shape is: claude mcp add --transport http vigia https://your-site.example/wp-json/vigia/v1/mcp --header "Authorization: Basic BASE64_OF_USER_AND_APP_PASSWORD" Claude Code merges the new entry into its config file automatically — no risk of breaking other servers. Connecting Cursor Save the JSON block from Quick Connect as ~/.cursor/mcp.json. You can also reach this file from inside Cursor at Settings → Cursor Settings → MCP. If the file already exists with other content, see the FAQ. Claude Desktop and other clients Claude Desktop does not speak HTTP MCP, so it needs a small bridge and a config file of its own. Any other client (Codex CLI, Continue, Cline, Antigravity, Zed, or your own) takes the two raw values Quick Connect exposes: the server URL and the Authorization header. Both cases are covered in the FAQ, together with how to merge VigIA into a config file that already exists without losing what is in it. Read-only mode If you only want your AI to consult VigIA (not change anything), enable “Read-only mode” in the MCP tab. While on, write actions (block, unblock, robots changes) return a permission denied error. Read actions (statistics, top crawlers, blocked items, robots rules) keep working. The toggle stores a vigia_mcp_read_only option that hooks into the vigia_can_write_via_abilities filter. Developers can still force read-only from a mu-plugin: add_filter( 'vigia_can_write_via_abilities', '__return_false' ); The mu-plugin filter at the default priority takes precedence over the toggle. Who can reach the endpoint The endpoint requires the capability to manage options, the same one every tool behind it already asked for. The vigia_mcp_transport_capability filter can lower that bar; each tool keeps its own permission check. After connecting Restart your MCP client after adding the server so it picks up the new tools. Then try a few prompts to confirm everything is wired up: “Show me VigIA crawler stats for the last 7 days.” “List the top 5 most crawled pages on this site.” “Add a robots.txt Disallow rule for TestBot and then list the current AI crawler rules.” The third example exercises a read + write + read round-trip, which is the most complete sanity check. Support Need private support or custom development? Do you need one-on-one help, priority troubleshooting, or a custom feature, integration, or tweak built specifically for your site? I offer private support and custom development. Just contact me and tell me what you need. Need help or have suggestions? Official website WordPress support forum YouTube channel Documentation and tutorials Love the plugin? Please leave us a 5-star review and help spread the word! About AyudaWP We are specialists in WordPress security, SEO, AI and performance optimization plugins. We create tools that solve real problems for WordPress site owners while maintaining the highest coding standards and accessibility requirements.