Descrición
Maya Team Directory lets you create and display a clean, fast team directory on your WordPress site. Add team members with profile photos, positions, departments, contact details, and bios, then display them with a simple [maya_team] shortcode.
The free plugin is intentionally lean and focused. It ships with everything you need to publish a working team page: the custom post type, group taxonomy, a responsive grid layout, search, group filtering, pagination, and a single-member template.
This plugin makes no remote calls, has no license key, no in-plugin upsell prompts, and never asks for your credit card to unlock built-in features.
Optional companion add-ons (CSV import/export, REST API endpoints, extra layouts, sidebar widget, custom CSS, accent color picker, social-network fields and icons — LinkedIn, X, Facebook, Instagram, GitHub, YouTube — featured-member highlighting, per-group layout overrides, and more) are available separately at https://mayanaikotech.com/maya-team-directory/. They install as their own plugin and are 100% optional — this plugin works fully without them.
What’s Included (Free)
- Custom post type for team members
- Group taxonomy for organizing members
- Custom fields: Position, Department, Email, Phone, Website
- Responsive grid layout
- Search bar and group filter
- Pagination
- Single-member profile template
- Mobile responsive
- Admin photo thumbnails and sortable columns
- Translation-ready (.pot file included)
- A documented hook & filter API for add-ons (see below)
Shortcode Usage
Display all team members:
[maya_team]
Filter by group:
[maya_team group=”management”]
Show multiple groups:
[maya_team groups=”management,board”]
Hide members in a specific group:
[maya_team exclude_groups=”alumni”]
Custom pagination and ordering:
[maya_team per_page=”8″ orderby=”title” order=”ASC”]
Hide controls:
[maya_team search=”false” filter=”false”]
Force grid column count (1–6):
[maya_team columns=”4″]
Template Overrides
Copy templates from maya-team-directory/templates/ to your theme:
your-theme/maya-team-directory/single-maya_member.phpyour-theme/maya-team-directory/archive-maya_member.phpyour-theme/maya-team-directory/taxonomy-maya_group.php
Hooks & Filters
These hooks form the public API that companion add-ons (and any third-party plugin) can use to extend the free plugin without modifying its files.
Filters:
maya_td_query_args— Modify the main member query (receives$query_args,$atts).maya_td_card_data— Modify card template data before rendering (receives$data,$post_id).maya_td_card_renderer— Return a callable to take over rendering for a non-grid layout (receivesnull,$layout,$data,$post_id).maya_td_card_social_keys— Add extra social networks to read for each card (receivesnetwork-slug => meta-keymap).maya_td_meta_fields— Add extra fields to the Member Details meta box.maya_td_social_fields— Add extra fields to the Social Links meta box.maya_td_social_icons— Provide SVG icon markup for additional social networks.maya_td_member_meta_keys— Extend the list of meta keys cleaned up on uninstall.maya_td_available_layouts— Register additional layouts (list, compact, masonry, etc.) so they appear in the layout toggle and validate as shortcodelayout=""values.maya_td_layout_icon— Provide the SVG icon for a registered layout’s toggle button.maya_td_single_member_template— Override the path of the single-member template file.maya_td_sanitize_settings— Sanitize and persist add-on-registered settings fields.maya_td_resource_links— Add, remove, or reorder links in the Settings page Resources sidebar.
Actions:
maya_td_init— Fires after the free plugin’s core classes are instantiated. Add-ons should bootstrap from here.maya_td_register_admin_menu— Fires after the Settings submenu is registered, so add-ons can add their own submenus under the Maya Team Directory menu.maya_td_settings_sections— Render extra<div class="maya-settings-section">blocks inside the settings form.maya_td_settings_sidebar— Render extra panels in the settings sidebar.maya_td_before_directory— Fires before the directory wrapper opens (receives$atts,$membersWP_Query).maya_td_after_directory— Fires after the directory wrapper closes (receives$atts,$membersWP_Query).maya_td_after_card_content— Add content inside each card, after the bio (receives$data,$post_id).maya_td_after_member_details_fields— Add inputs inside the Member Details meta box.maya_td_after_social_fields— Add inputs inside the Social Links meta box.maya_td_display_options_fields— Add inputs inside the Display Options side meta box.maya_td_save_member_meta— Persist add-on-owned member meta keys when a member post is saved.
External Services
This plugin does not connect to any external services. All processing happens locally on your WordPress site. No data is sent to any third-party server.
Support
For support, please email ayalip@mayanaikotech.com or visit https://mayanaikotech.com/maya-team-directory.
Instalación
- Upload the
maya-team-directoryfolder to/wp-content/plugins/ - Activate the plugin through the ‘Plugins’ menu in WordPress
- Go to Team Members > Add New to create team members
- Use the
[maya_team]shortcode on any page or post - Configure settings at Team Members > Settings
Preguntas frecuentes
-
How do I display team members?
-
Use the shortcode
[maya_team]on any page or post. You can filter by group with[maya_team group="your-group-slug"]. -
Does it work with page builders?
-
Yes. The shortcode works with Elementor, Beaver Builder, Divi, and any builder that supports WordPress shortcodes.
-
Can I customize the design?
-
Override any template by copying it from the plugin’s
templates/folder into your theme underyour-theme/maya-team-directory/. You can also style the front-end output from your theme’s stylesheet — every element has a stable.maya-*class. -
Does the plugin call any external services?
-
No. The plugin operates entirely on your own WordPress install. Nothing is sent to any third-party server.
-
They were moved to a separately-distributed companion add-on so the free plugin can stay small and focused. The hooks and filters required to add them back are documented above. The add-on is available at https://mayanaikotech.com/maya-team-directory/ and is entirely optional.
-
Why are there no LinkedIn / X / Facebook fields in the member editor?
-
Social-network fields and their icons (LinkedIn, X, Facebook, Instagram, GitHub, YouTube, etc.) are entirely owned by the optional companion add-on. The free plugin exposes the
maya_td_social_fields,maya_td_social_icons, andmaya_td_card_social_keysfilters so any plugin can register networks and have them appear in the Social Links meta box and on member cards.
Comentarios
Non hai recensións para este plugin.
Colaboradores e desenvolvedores
“Maya Team Directory” é un software de código aberto. As seguintes persoas colaboraron con este plugin.
ColaboradoresTraduce “Maya Team Directory” ao teu idioma.
Interesado no desenvolvemento?
Revisa o código, bota unha ollada aorepositorio SVN, ou subscríbete ao log de desenvolvemento por RSS.
Rexistro de cambios
1.0.2
- Plugin Check pass. Fixed two
WordPress.Security.EscapeOutput.OutputNotEscapederrors inMaya_Shortcode::render_shortcode(): the wrapper inline-style is now built as a value-only string and escaped withesc_attr()at the point of output, and the<option selected>attribute now uses the coreselected()helper instead of a hand-rolled string. Renamed every template-scope variable intemplates/single-maya_member.php,templates/archive-maya_member.php, andtemplates/taxonomy-maya_group.phpto use the$maya_prefix so Plugin Check’sWordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFoundrule no longer fires. Added narrowly-scopedphpcs:ignoreannotations (with justifications) for the unavoidabletax_query,meta_query, andpost__not_inquery parameters that are inherent to the directory’s filtering and ordering features.
1.0.1
- Pre-release hardening based on the WordPress.org plugin review feedback. Updated the readme
Contributorsfield to use the correct WordPress.org username (ayalip). Sanitized the nonce input inMaya_Meta_Fields::save_meta()withsanitize_text_field( wp_unslash( ... ) )before passing it towp_verify_nonce(). Captured theob_start()buffer inMaya_Shortcode::ajax_load_more()into an explicit$htmlvariable viaob_get_clean()in the same function scope, so the buffer is unambiguously paired and cannot be left open by any code path. Replaced theMaya_Meta_Fields::kses_svg()echo helper with directwp_kses( $svg, Maya_Meta_Fields::svg_allowed_tags() )calls at every echo site (front-end card renderer and the single-member template) so Plugin Check sees a recognised core escaper at the point of output. Wrapped the imploded group-link list inwp_kses_post()instead of relying on a phpcs ignore comment. Thekses_svg()helper itself is kept as a thin wrapper aroundwp_kses()for backwards compatibility.
1.0
- Initial release.