{"id":339674,"date":"2026-07-25T06:44:18","date_gmt":"2026-07-25T06:44:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/agent-roster\/"},"modified":"2026-07-25T06:43:54","modified_gmt":"2026-07-25T06:43:54","slug":"agentroster-real-estate-team-directory","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/agentroster-real-estate-team-directory\/","author":23531821,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"AgentRoster Real Estate Team Directory","header_author":"AgentRoster","header_description":"Display your brokerage or team's agents in a clean, SEO-friendly directory. Photo grid, agent profile pages, offices, CSV import, and RealEstateAgent schema markup.","assets_banners_color":"","last_updated":"2026-07-25 06:43:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/agentroster.ca\/wordpress-plugin\/","header_author_uri":"https:\/\/agentroster.ca","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"agentroster","date":"2026-07-25 06:43:54"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":{"agent-roster\/roster":{"name":"agent-roster\/roster","title":"Agent Roster"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Agent grid on the front end (3 columns)","2":"Agent profile page with contact card and bio","3":"The Agent Details meta box in the editor","4":"CSV import screen","5":"The Agent Roster block in the editor with live preview"}},"plugin_section":[],"plugin_tags":[15643,2466,2199,5074,3491],"plugin_category":[58],"plugin_contributors":[273252],"plugin_business_model":[],"class_list":["post-339674","plugin","type-plugin","status-publish","hentry","plugin_tags-agents","plugin_tags-directory","plugin_tags-real-estate","plugin_tags-realtor","plugin_tags-team","plugin_category-user-management","plugin_contributors-agentroster","plugin_committers-agentroster"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/agentroster-real-estate-team-directory.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>AgentRoster Real Estate Team Directory<\/strong> is a lightweight team directory built specifically for real estate brokerages and teams. Add your agents once, drop the block (or shortcode) on any page, and you have a fast, mobile-friendly \"Meet Our Agents\" page \u2014 with proper <code>RealEstateAgent<\/code> schema markup that helps your agents show up in search.<\/p>\n\n<p>No MLS or IDX required. No account required. No lock-in \u2014 your agents are ordinary WordPress content that you own.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Photo grid or list layouts<\/strong> \u2014 1 to 4 responsive columns, looks right in any theme because it inherits your theme's fonts and colors<\/li>\n<li><strong>Agent profile pages<\/strong> \u2014 bio, photo, phone, email, license number, website, and social links, each on its own SEO-friendly URL<\/li>\n<li><strong>Offices \/ Teams<\/strong> \u2014 group agents by office and show separate rosters per office with <code>[agentroster office=\"lakeside\"]<\/code><\/li>\n<li><strong>Gutenberg block + shortcode<\/strong> \u2014 use whichever your workflow prefers; the block shows a live preview in the editor<\/li>\n<li><strong>CSV import<\/strong> \u2014 onboard your whole brokerage in one upload (name, position, email, phone, office, license, website, bio). Duplicate emails are skipped, so re-imports are safe<\/li>\n<li><strong>RealEstateAgent schema (JSON-LD)<\/strong> \u2014 structured data on every profile page for better search visibility<\/li>\n<li><strong>Click-to-call and mailto links<\/strong> \u2014 phone numbers and emails on cards just work on mobile<\/li>\n<li><strong>Fast<\/strong> \u2014 one small stylesheet, loaded only on pages that show a roster; no jQuery, no external requests<\/li>\n<\/ul>\n\n<h4>Who is it for?<\/h4>\n\n<p>Brokerages, real estate teams, and the agencies that build their websites. If your \"Our Agents\" page is currently a generic staff-list plugin, a page builder collage, or a static page nobody updates, this replaces it in minutes.<\/p>\n\n<h4>Quick start<\/h4>\n\n<ol>\n<li><strong>Agent Roster \u2192 Add Agent<\/strong> \u2014 the photo is the Featured Image, the bio is the editor content, contact details are in the Agent Details box<\/li>\n<li>Add the <strong>Agent Roster block<\/strong> to any page (or use <code>[agentroster]<\/code>)<\/li>\n<li>Optional: group agents under <strong>Offices \/ Teams<\/strong>, then use <code>[agentroster office=\"your-office-slug\"]<\/code><\/li>\n<\/ol>\n\n<h4>Shortcode reference<\/h4>\n\n<pre><code>[agentroster office=\"\" columns=\"3\" layout=\"grid\" limit=\"-1\" link=\"yes\" orderby=\"menu_order\"]\n<\/code><\/pre>\n\n<ul>\n<li><code>office<\/code> \u2014 one or more office slugs, comma-separated (empty = all agents)<\/li>\n<li><code>columns<\/code> \u2014 1 to 4 (grid layout)<\/li>\n<li><code>layout<\/code> \u2014 <code>grid<\/code> or <code>list<\/code><\/li>\n<li><code>limit<\/code> \u2014 maximum number of agents (-1 = all)<\/li>\n<li><code>link<\/code> \u2014 <code>yes<\/code>\/<code>no<\/code>, link cards to profile pages<\/li>\n<li><code>orderby<\/code> \u2014 <code>menu_order<\/code> (drag order via the Order attribute), <code>title<\/code>, or <code>date<\/code><\/li>\n<\/ul>\n\n<p>Agent Roster is built and maintained by the team behind <a href=\"https:\/\/agentroster.ca\/\">AgentRoster.ca<\/a>, the Canadian real estate agent database.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20connect%20to%20my%20mls%20or%20idx%20feed%3F\"><h3>Does this connect to my MLS or IDX feed?<\/h3><\/dt>\n<dd><p>No \u2014 and that's deliberate. Agent Roster manages your <em>team directory<\/em>, not listings. It works alongside any IDX\/listings plugin.<\/p><\/dd>\n<dt id=\"how%20do%20agents%20get%20their%20photo%3F\"><h3>How do agents get their photo?<\/h3><\/dt>\n<dd><p>Set the agent's Featured Image. If there is no photo, a clean initial-letter avatar is shown instead.<\/p><\/dd>\n<dt id=\"can%20i%20reorder%20agents%3F\"><h3>Can I reorder agents?<\/h3><\/dt>\n<dd><p>Yes. Cards are ordered by the page Order attribute (Agent Roster \u2192 All Agents \u2192 Quick Edit \u2192 Order), so you can put the broker of record first.<\/p><\/dd>\n<dt id=\"does%20it%20phone%20home%20or%20load%20anything%20external%3F\"><h3>Does it phone home or load anything external?<\/h3><\/dt>\n<dd><p>No. No external requests, no tracking, no accounts. There is an optional \"Directory by AgentRoster.ca\" credit link you can turn on in Settings if you want to support development \u2014 it is <strong>off by default<\/strong>.<\/p><\/dd>\n<dt id=\"is%20the%20csv%20import%20safe%20to%20run%20twice%3F\"><h3>Is the CSV import safe to run twice?<\/h3><\/dt>\n<dd><p>Yes. Rows whose email already exists on an agent are skipped, so you can re-import an updated roster without creating duplicates.<\/p><\/dd>\n<dt id=\"where%20does%20the%20data%20live%3F\"><h3>Where does the data live?<\/h3><\/dt>\n<dd><p>In your own WordPress database, as a regular custom post type. Deleting the plugin does not delete your agents.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: agent post type, offices taxonomy, grid\/list layouts, Gutenberg block, shortcode, CSV import, RealEstateAgent JSON-LD schema, click-to-call cards.<\/li>\n<\/ul>","raw_excerpt":"Display your brokerage or team&#039;s agents in a clean, SEO-friendly directory. Photo grid, profile pages, offices, CSV import, schema markup.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/339674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=339674"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/agentroster"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=339674"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=339674"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=339674"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=339674"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=339674"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=339674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}