PHP
opendoor_get_resources( array(
'category' => 'food', // slugs, subcategories included
'search' => 'pantry',
'open_now' => true,
'features' => 'free,walk_in',
'language' => 'spanish',
'orderby' => 'open', // or 'name'
'limit' => 20,
) );
opendoor_get_resource( $post_id );
opendoor_is_open_now( $post_id );
Each resource is an array with name, description, categories, contact, address, lat and lng, hours, exceptions, features, languages, eligibility, what to bring, status, and more.
REST API
GET /wp-json/opendoor/v1/resources takes the same arguments as query parameters, for example ?category=food&open_now=1.
Abilities and MCP
On WordPress 6.9 and later, three read-only abilities are registered in the open-door-directory category: opendoor/search-resources, opendoor/get-resource, and opendoor/list-categories. They are marked public.
The same tools are served over MCP (Streamable HTTP) at POST /wp-json/opendoor/v1/mcp. It is stateless, needs no sign-in, and supports protocol versions 2025-03-26 through 2026-07-28. Filters:
opendoor_ai_enabled: turn the abilities and endpoint on or off in code.opendoor_ai_tools: add or change tools. Keep them read-only.opendoor_ai_resource: change the resource fields sent to assistants. Never add a confidential location’s address back.opendoor_ai_reminders: the short reminders sent with every result.opendoor_mcp_instructions: the guidance sent to assistants when they connect.opendoor_mcp_rate_limit: requests per minute per visitor (default 60, 0 turns it off).opendoor_mcp_client_ip: the IP used for the limit, for sites behind a proxy.opendoor_mcp_allow_origin: block browser origins.
Templates
Copy card.php, popup.php, or single-details.php from the plugin’s templates folder to your-theme/open-door-directory/ to change the markup.
Hooks
- Filters include
opendoor_resource_fields,opendoor_query_args,opendoor_card_html,opendoor_directions_url,opendoor_max_resources,opendoor_settings_fields,opendoor_settings_tabs,opendoor_service_features,opendoor_schema_data, andopendoor_share_text. - Actions include
opendoor_loaded,opendoor_meta_box_after,opendoor_settings_after, andopendoor_builder_after. - In the browser, each directory fires a
opendoor:filterevent when visitors change the filters.
WP-CLI
wp opendoor seed --count=20
wp opendoor reset
seed adds sample resources for testing; reset removes only those samples.
Still stuck? Email us