Plugin Directory

Test out the new Plugin Directory and let us know what you think.

PTA Member Directory and Contact Form

Create and display a member/staff directory and contact form. Sortable list of staff by position/title. Spambot protected contact form. Many options.

Can this plugin do (insert a feature request here)? Can you add (insert a feature request here)?


This plugin has a lot of options and features, but I have been getting overwhelmed with feature requests recently. This plugin already does MUCH more than I originally intended, and more than we needed for our own school PTA web site. I have created some extensions that I thought would be helpful to the largest number of people, which you can find at: http://stephensherrardplugins.com

PLEASE USE THE FEATURE REQUEST FORUM TO REQUEST NEW FEATURES!! http://stephensherrardplugins.com/support/forum/feature-requests/

I have a lot of members to display. Can I paginate results or have a search box?

Version 1.6.8 adds support for a new PTA Member Directory DataTables extension, which utilized the jQuery DataTables plugin to make your directory table searchable, sortable, paginated, and responsive. You can also select a jQuery UI theme and add custom CSS to further style the appearance of your directory.

Is there any documentation or help on how to use this?

A help tab has been added to the Member Directory admin section. Click on the Help tab in the upper right to show the help tab. There are sections covering each Member Directory admin screen, as well as how to set up shortcodes and custom links for both the directory and the contact form.

I'm getting a WordPress Mail Error when submitting the contact form, or emails are not getting delivered

This is a server issue and has nothing to do with the contact form or this plugin. Version 1.2 added the WordPress Mail Error message to let you know that the built-in WordPress mailer (wp_mail) returned an error. This means that your server is not compatible with the built-in WordPress mail function. You can use one of the many SMTP mail plugins, that change the WordPress Mail function to use SMTP for sending emails. Since this plugin uses WordPress Mail, any of those plugins that modify WordPress Mail to use SMTP should work with this plugin to fix your mail errors. Note that some of those SMTP plugins will change the reply-to address to equal the from address instead of the address of the person filling out the contact form. I have created my own PTA SMTP Mailer plugin which is a modified version of Easy WP SMTP that does not change the reply-to address, and also has improved settings and built-in help tabs. You can download the PTA SMTP Mailer plugin for free at: https://stephensherrardplugins.com

How do I display the directory on a page?

Place the shortcode [pta_member_directory] on the page where you want the directory. You can use shortcode arguments to specify a location or position. You can download a free extension to automatically generate the shortcodes for the directory and contact form, along with properly formatted arguments for location or position, from my plugins site at: http://stephensherrardplugins.com

How do I use the contact form?

If you want to use the contact form instead of displaying emails in the directory, make sure the "Use Contact Form?" option is checked. This will replace all email addresses in the directory with a "Send A Message" link. Clicking on that link will automatically generate the contact form on the same page, with the recipient already selected.

However, you can also use the shortcode [pta_member_contact] to put the Contact Form on its own separate page. This will allow you to use the contact form independently of the directory. If you then select the page with your contact form on the options page, when you click on "Send A Message" in the directory, the link will take the user to the contact form page with the recipient field already selected.

There is also a new shortcode to create a simple admin contact form without the recipient select box. Just use the shortcode [pta_admin_contact] . All messages sent from that form will go to the site\'s admin email. You can also force a simple admin contact form by passing in -1 as the id in a contact form link, such as: http://yoursite.com/your_contact_form/?id=-1

Additional shortcode arguments for the contact form have been added in version 1.5 to allow you to specify an ID for a specific member as well as to hide the recipient select box, so that you can hard-code contact forms for specific members. For example, if you enter content (such as bio) for a member and set the directory to link to member posts, you could embed a contact form shortcode for each member on their own post so visitors can contact them directly from the bio pages without having to select a recipient.

Simplify the shortcode generation by downloading the free extension, PTA Shortcodes, from my plugin site at: http://stephensherrardplugins.com

Can I add more fields to the contact form? Or use a different contact form?

At this time there are no built-in options for adding additional fields to the contact form. However, there is a Gravity Forms extension available which will allow you to create your own contact form with the very powerful Gravity Forms. The extension will prepopulate a recipient select box in your Gravity Forms from existing members and positions, pre-select one of those recipients based on links/arguments passed to it, and will alter the notification email to address to make sure the message gets sent to the correct recipient. The Gravity Forms extension is available at: https://stephensherrardplugins.com

Is there any spam protection? There is no captcha field?

I'm not a fan of captcha as I often can't even read them myself, and it makes setup a bit more complicated since you need to obtain and enter a key for a captcha service. Instead, I used the honeypot method of spam protection. There is a hidden spambot field that normal visitors won't see, but spambots will fill in. Any form submission that has that spambot field filled in will be rejected.

How can I change the text that appears in the member directory or contact form?

As of version 1.3.6 a filter hook has been added for almost all text that is output to the public side of the member directory and contact form. There is some information in the help tab in the admin section on how to use this, and there are now 2 files in the main directory of this plugin, output-filters.php and output-filters.txt, that provide all the information and sample code needed to modify any of the text strings. If you are not comfortable with PHP or adding code to your theme\'s functions.php file, there is a very simple Customizer add-on extension plug-in available at https://stephensherrardplugins.com

How do I make a contact link for an individual or group on other pages of my site?

Just create a link to your contact form page (the page with the [pta_member_contact] shortcode), and include an argument for the id of the individual or group you want to be pre-selected on the contact form. For example, to link to an individual number, you set the id equal to the member directory ID of the member, which you can see in your list of all members. If the ID is 101, then your link should look like: http://yoursite.com/your_contact_form/?id=101 If you want to select a position to contact all members who hold that position, use the slug version of the position. You can see the slug for each position from the list of Positions on the admin side. For example, if you want the contact form to be pre-selected for the position of President (slug would be simply president), your link would look like: http://yoursite.com/your_contact_form/?id=president

How do I show a directory for a specific location?

If you want a directory for a specific location on its own page, add the location argument to the directory shortcode, and use the slug version of the location you want to show. For example: [pta_member_directory location="seattle"] If you want a single directory page that you can use to show all locations, but also can show a specific location, use the regular directory shortcode without the location argument. If someone goes directly to that page, they will see the full directory for all locations. But, if you set up links to that page with location arguments in the URLs, you can show a specific location. You could, for example, set up navigation menu items for each location, all going to the same directory page, but with different location argument. For example, if you want to show a directory for Seattle, the link would be something like: http://yoursite.com/your_directory_page/?location=seattle

Can I add custom fields to the directory?

Hooks and filters are in place to allow the creation of custom fields. This requires a significant amount of programming and knowledge of how to create inputs and save data from custom meta boxes on the admin post editor page for the custom post type. I have created an add-on Custom Fields plugin extension for this that allows you to create any number of custom fields, with 4 different field types (text, link, file, textarea), and 3 output locations for these fields (after name, after email, and after the last column). You can have more than one custom field in each location as well, so you are only limited by how many fields you want to try to fit into the directory table. This plugin extension is available at my new site: http://stephensherrardplugins.com

Version 1.5.1 also now supports the Descriptions extension, which will grab any content you put into the description box for each Position, and either display it as a new column in the directory, or put a tooltip icon with pop-up description dialog next to position names that have description content. Our school PTA wanted to list job description and responsibilities for each position to help people decide what to volunteer for in the new school year, so I put created this extension, which can be found at: http://stephensherrardplugins.com

Requires: 3.3 or higher
Compatible up to: 4.3.7
Last Updated: 1 year ago
Active Installs: 1,000+


4.9 out of 5 stars


Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 0,1,0