Search Over 30,000 FREE Plugins from the Official WordPress Plugin Directory Repository

Connections Business Directory

An easy to use directory plugin to create an addressbook, business directory, member directory, staff directory or church directory.

Homepage | Showcase | Documentation | Support | Templates | Extensions

Quite simply, Connections Business Directory is one of the best business directory plugins available for WordPress. Its simplicity in design and function, vast array of unique features and versatility are the reasons more and more people are turning to Connections Business Directory for their directory needs. You can use Connections to create a simple address book, maintain a staff or member directory and run a business directory or link directory. Connections Business Directory was built bottom up to be as configurable as possible while providing the features you need. Read on to learn about some of the best features Connections Business Directory has to offer...


  • Seamless integration with WordPress.
  • Highly rated support.
  • Continuously updated bringing you new features for free.
  • Dashboard admin page where you can see at a glance today's anniversaries and birthdays as well as upcoming anniversaries and birthdays of members in your directory.
  • Multiple entry types from which to choose; such as individual, organization and family. The family entry type is unique to Connections. This entry type allows you to group individuals together as a family which makes Connections ideally suited for creating a church directory.
  • You control which entries are viewable to the public and which entries are private, viewable for logged in users only. You can even have entries set as unlisted so only admins can view them.
  • Repeatable fields for address, phone numbers, email, IM, social media, links and dates which allow you to add as much or as little as you need for each business in your business directory.
  • Hierarchical (nested) category support. Businesses and members in your business directory can be added to any number of categories.
  • Include a biographical text for an individual member or business description for each entry in your business directory using an easy to use rich text editor.
  • You can easily add a business logo or photo of the staff member for each entry in your business directory or staff directory. The photo and logo images are fully responsive with HiDPI (Retina) display support.
  • Scalable, manage directories which contain hundreds of thousands of entries.
  • CSV Export of addresses, phone numbers, email addresses and dates.
  • CSV Import of nested categories.
  • Role capability support.
  • Displaying your business directory on the frontend is as simple as putting a shortcode on a page. Don't let this simplicity fool you. The shortcode provides a large array of options that are just too numerous to list. To learn more, go here.
  • SEO. Every entry in your business directory outputs following the hCard spec. Soon to be updated to following
  • Extensible and developer friendly.
  • Robust templating support with the Template Customizer. Several basic templates are provided to get you started with you business directory with many more premium templates available to really make your business directory shine.


Here are some great free extensions (with more on the way) that enhance your experience with Connections Business Directory:


  • Toolbar :: Provides quick links to the admin pages from the admin bar.
  • Login :: Provides a simple to use login shortcode and widget.

Custom Fields


  • Face Detect :: Applies face detection before cropping an image.

Premium Extensions

  • Authored :: Displays a list of blog posts written by the entry on their profile page.
  • Contact :: Displays a contact form on the entry's profile page to allow your visitors to contact the entry without revealing their email address.
  • CSV Import :: Bulk import your data in to your directory.
  • Custom Category Order :: Order your categories exactly as you need them.
  • Custom Entry Order :: Allows you to easily define the order that your business directory entries should be displayed.
  • Enhanced Categories :: Adds many features to the categories.
  • Form :: Allow site visitor to submit entries to your directory. Also provides frontend editing support.
  • Link :: Links a WordPress user to an entry so that user can maintain their entry with or without moderation.
  • ROT13 Encryption :: Protect email addresses from being harvested from your business directory by spam bots.
  • SiteShot :: Show a screen capture of the entry's website.
  • Widget Pack :: A set of feature rich, versatile and highly configurable widgets that can be used to enhance your directory.

Premium Templates

Connections Business Directory comes with a couple templates to get you started which fully support the Template Customizer. In addition to these free templates there are many premium templates available to take your business directory the level visually.

  • Circled :: A simple but bold template specifically designed for displaying small team or staff directory.
  • cMap :: Our most popular go to template for a business directory and chamber of commerce business directory, featuring full Template Customizer support.
  • Excerpt Plus :: Simple design which features a directory entry name, photo thumbnail and excerpt.
  • Gridder :: Another simple but bold template which displays the directory in a grid layout. Perfect for displaying a small team or staff directory
  • Slim Plus :: Specifically designed to take up as little space on the page as possible.
  • Tile Plus :: This template was purposely designed to display the directory in a grid or column layout.

Developer Friendly

  • Open development on Github.
  • Access to 180 action hooks and over 300 filters ... and counting.
  • Term API.
  • Custom Metabox and Fields API.
  • Template Engine and API.
  • Fragment Cache API.
  • Log API (stateless and stateful).
  • Admin Notices API.
  • Email API.
  • Settings API.

Connections Business Directory has a very flexible template engine. The loading of template and CSS are context aware. This means you could create specific templates that load when a user visits a specific entry, category, postal code and more.

Templates and CSS overriding is very granular and update safe. Check out these links for the details:


Connections Business Directory has been embraced around the world and has been translated by its users in the following languages.

  • Arabic [60% Complete]
  • Catalan [52% Complete]
  • Croatian (Croatia) [22% Complete]
  • Danish [31% Complete]
  • Danish (Denmark) [29% Complete]
  • Dutch (Netherlands) [49% Complete]
  • Finnish [78% Complete]
  • French (France) [90% Complete]
  • German (Germany) [86% Complete]
  • Greek (Greece) [69% Complete]
  • Hebrew (Israel) [61% Complete]
  • Hungarian (Hungry) [52% Complete]
  • Italian (Italy) [58% Complete]
  • Norwegian [13% Complete]
  • Persian (Iran) [52% Complete]
  • Polish (Poland) [52% Complete]
  • Portuguese (Brazil) [77% Complete]
  • Portuguese (Portugal) [24% Complete]
  • Romanian (Romania) [69% Complete]
  • Russian (Russia) [40% Complete]
  • Serbian (Latin) [2% Complete]
  • Spanish (Latin America) [49% Complete]
  • Spanish (Mexico) [99% Complete]
  • Spanish (Spain) [99% Complete]
  • Sweden (Swedish) [96% Complete]
  • Turkish (Turkey) [58% Complete]
Author Steven A. Zahm
Tags address book, business-directory, chamber of commerce business directory, church directory, company business directory, contact directory, custom business directory, directory, directory plugin, link directory, listings directory, local business directory, member directory, staff directory
  1. connections screenshot 1

    The many possible faces of your business directory. Connections Business Directory supports templates. This screenshot showcases (left to right) Excerpt Plus, Circled, Gridder, Tile Plus and Slim Plus.

  2. connections screenshot 2

    Another screenshot showcasing the different templates that can be used to style your business directory. Left to right; Circled, cMap and Gridder.

  3. connections screenshot 3

    The Dashboard admin page. A snapshot of important information about the business directory.

  4. connections screenshot 4

    The Manage admin page. Here you can manage all the entries within the address book.

  5. connections screenshot 5

    The Add New Entry admin page. From here you can add new entries to the addressbook.

  6. connections screenshot 6

    The Categories admin page. Add as many categories as you wish to the directory. Categories do support parent/child relationships.

  7. connections screenshot 7

    The Templates admin page. Here you choose which template that the business directory should use when displaying the directory.

  8. connections screenshot 8

    The Settings admin page where you can configure the business directory options.

  9. connections screenshot 9

    The Role and Capabilities admin page. Here you can assign which roles have which capabilities in viewing and managing the directory.

  10. connections screenshot 10

    The Tools :: Export admin page contains many different CSV export tools to allow you to easily export the data from your business directory.

  11. connections screenshot 11

    The Tools :: Import admin page allows you to quickly bulk import nested categories into your business directory.

  12. connections screenshot 12

    In the event that you need support the Tools :: System Information admin page contains all the information needs about your directory installation which can be easily and quickly shared.

  13. connections screenshot 13

    Need to move the configuration of your business directory from one site to another? The Tools : Settings Import/Export admin page allows you to do it with zero fuss. This will even migrate the Template Customizer settings applied to template and any of the settings for the premium extensions.

Installation instructions can be found here.

Using the WordPress Plugin Search

  1. Navigate to the Add New sub-page under the Plugins admin page.
  2. Search for connections business directory.
  3. The plugin should be listed first in the search results.
  4. Click the Install Now link.
  5. Lastly click the Activate Plugin link to activate the plugin.

Uploading in WordPress Admin

  1. Download the plugin zip file and save it to your computer.
  2. Navigate to the Add New sub-page under the Plugins admin page.
  3. Click the Upload link.
  4. Select Connections Business Directory zip file from where you saved the zip file on your computer.
  5. Click the Install Now button.
  6. Lastly click the Activate Plugin link to activate the plugin.

Using FTP

  1. Download the plugin zip file and save it to your computer.
  2. Extract the Connections Business Directory zip file.
  3. Create a new directory named connections directory in the ../wp-content/plugins/ directory.
  4. Upload the files from the folder extracted in Step 2.
  5. Activate the plugin on the Plugins admin page.


  • WordPress version: >= 4.1
  • PHP version: >= 5.2.4
  • NOTE: Upgrading from version 0.6.1 and newer only, is supported. Previous version must upgrade to 0.6.1 before upgrading to the current version.

8.5.32 12/12/2016

  • TWEAK: Show parent theme name and version in System Info when child theme is active.
  • TWEAK: Query all matching entry slugs at once instead one at a time when searching for a unique slug.
  • BUG: Remove use of is_taxonomy_hierarchical() within the cmTerm class because it does not apply.
  • BUG: Fix "Illegal string offset" in PHP 7.1.
  • OTHER: Remove stray/extra whitespace after a comma.
  • OTHER: Introduce cnDB::multisert().
  • OTHER: Update so the badges link to the site.
  • PHPUnit: Add PHP 7.1 to the test matrix.

8.5.31 12/08/2016

  • TWEAK: Fix Template Customizer so it loads properly in WordPress 4.7.
  • REST API: More work done to support the entry endpoint for the REST API.
  • PHPUnit: Add framework to support unit testing to help ensure even more stable build releases.

8.5.30 11/29/2016

  • TWEAK: Revert form action to not include the form action.
  • BUG: Ensure enhanced select renders the placeholder values correctly when viewing on a mobile device.
  • BUG: Enable search for the Address Line 4, District and Country fields.
  • OTHER: Correct method capitalization.
  • DEV: Correct inline code doc punctuation.
  • I18N: Update POT file.
  • I18N: Update MO files.

8.5.29 11/10/2016

  • NEW: Add filter to the document_title_parts filter to properly set the browser tab/window title if wp_title() is not being used by the theme.
  • TWEAK: Remove the $cached terms params in the Term REST endpoint.
  • TWEAK: Suppress potential PHP notice from being thrown by unserialize() in cnEntry::getAddresses().
  • TWEAK: Ensure the home page URL always has a trailing slash in the callback function for the page_link filter.
  • TWEAK: Add readonly support to cnHML::select() by making the actualy select field disabled and adding a new hidden input with the same name and value.
  • TWEAK: Only add the search form action attribute if the directory permalink is being added.
  • TWEAK: Force date format in datepicker because, since WP 4.4, WP sets a default format based on the date format set on the General Settings admin page. Those formats are not compatible with the expected date format to be saved.
  • TWEAK: Remove unnecessary trailing semi-colon from datepicker init function call.
  • TWEAK: Remove usage of deprecated $connections global var from cnEntry::getDates().
  • TWEAK: Set the form action attribute to default to the home_id shortcode default so searches are always from the directory root page.
  • TWEAK: Add a saving bool parameter to the cnRetrieve class for addresses, phone numbers and such to allow addresses and such to be queried regardless of current logged user permissions.
  • TWEAK: Update the entries address, phone, etc.. object caches on updates. This is to ensure the ID of each address, phone, etc.. is updated to reflect the ID in the database vs. leaving it as 0.
  • TWEAK: Convert the WP default date format WP jQuery UI datepicker compatible format.
  • BUG: Update the [upcoming_list] shortcode so it will function correctly with templates which support the Template Customizer.
  • BUG: Fix the display of the changelog of add-ons.
  • DEV: phpDoc Block corrections.
  • I18N: Update POT file.
  • I18N: Update MO files.

8.5.28 10/12/2016

  • NEW: Introduce the connections_page_connections_settings-{tab_name} action hook.
  • NEW: Introduce the cn_pre_handle_404_retrieve_atts filter hook.
  • NEW: Introduce cnLicense_Status.
  • TWEAK: Improve the page load time of the Plugins admin page by batching together license checks into a single HTTP request.
  • TWEAK: Set option group name one instead of repeating the logic several times in cnSettingsAPI::form().
  • TWEAK: Add support for the invalid_item_id error status reported by EDD-SL.
  • TWEAK: Register all item licenses with cnLicense_Status.
  • TWEAK: Remove unused cnLicense::status() method.
  • TWEAK: Remove use of transients made obsolete by cnLicense_Status.
  • BUG: Reset the category_exclude shortcode option if querying entry by slug.
  • BUG: The connections_license_data should not be autoloaded.
  • BUG: The basename and slug array values do not need to be set as defaults because they are auto created from file path and item name.
  • DEV: phpDoc block fixes.

8.5.27 10/08/2016

  • NEW: Introduce the cn_search_like_shortword filter.
  • NEW: Introduce cnPlugin_Updater class.
  • TWEAK: Switch from using EDD_SL_Plugin_Updater to cnPlugin_Updater..
  • TWEAK: Update WordPress API to 2.0-beta15
  • TWEAK: Tweak the term slug sanitize_callback to use the WP_REST_Controller::sanitize_slug() callback.
  • TWEAK: Remove unnecessary break statements in a switch.
  • TWEAK: Ensure trailing slash in cnLicense::license() request.
  • BUG: Ensure changelog section existing before trying to parse it.
  • BUG: The upgrade notice is a string, not an array.
  • OTHER: Correct misspelling.
  • OTHER: Update copyright year in cnLicense.
  • DEV: phpDoc fixes.

8.5.26 09/16/2016

  • NEW: Add a new CSV export config option to export categories as child_of the defined parent category into their own csv column.
  • NEW: Add support for the WP REST API. This is alpha status and only supports the directory categories.
  • TWEAK: Add the cn-left and cn-right class to the Default Entry Card template for easier selection.
  • TWEAK: Add status codes to return value of cnLicense::statusMessage().
  • TWEAK: Register settings license field once per item instead of once for all items so cnLicense::field() will be unique per item instead of last item activated.
  • TWEAK: Optimize cnLicense::field() by removing duplicate code by utilizing cnLicense::statusMessage().
  • TWEAK: Delete license transient on activate/delete.
  • TWEAK: Update admin CSS with updates styles for the Settings admin page, Licenses tab.
  • TWEAK: Refactor cnSettingsAPI::form(), basic code cleanup.
  • TWEAK: Trigger 404 if entry not found instead of displaying a "no results" message.
  • TWEAK: Add try/catch to cnOutput::getDateBlock() to prevent fatal PHP errors when init'ing DateTime() with an invalid date format.
  • TWEAK: Reset the min/max-width CSS values on the search input on the frontend to fix some of the odd global defaults that themes set.
  • BUG: Remove include wp-load.php in WordFence Falcon Cache compatibility callback which caused fatal PHP errors.
  • BUG: Remove px unit from the social media network icon img tags as that is not valid markup.
  • BUG: Change cn-category-%d from an id to a class because it can be output on the page more than once.
  • BUG: Add missing $orderBy var to cn_term_clauses filter.
  • BUG: Fix a couple undefined variable PHP notices being generated by cnvCard.
  • BUG: Remove unnecessary ob_clean() call in cnvCard.
  • OTHER: Correct misspellings.
  • DEV: phpDoc fixes.
  • DEV: Stub some phpDoc in cnvCard.
  • DEV: Clean up some code alignment issues in cnvCard.
  • DEV: Add the WP REST API to the vendors folder.

8.5.25 09/07/2016

  • BUG: Do not try to get term ancestor hierarchy if the term is a root parent.
  • COMPATIBILITY: Convert NOWDOC block to HEREDOC block for PHP5.2.x holdouts.
  • COMPATIBILITY: Add action which should flush the Wordfence Falcon Cache when an entry/term is added/updated/deleted.
  • TWEAK: Pass WP_Error codes results from wp_remote_get() during license status check so they can be displayed.

8.5.24 09/02/2016

  • BUG: Fix conflict where the Manage admin page Screen Options would disappear when Broken Link Checker was being used.
  • COMPATIBILITY: Set current_screen action to priority 9 for compatibility with wsScreenOptions.
  • TWEAK: Set set-screen-option filter priority to 99 in order to help prevent other plugins from breaking the Manage admin page settings options.
  • TWEAK: Fix session info alignment in system info.
  • TWEAK: Update browser info in system info to be compatible with Browser.php 2.0.
  • TWEAK: Add PHP Arg separator to the system info report.
  • TWEAK: Use cnFunction::parseStringList() to simplify code in cnOutput::getContentBlock().
  • TWEAK: HTML markup fixes in cnAdminFunction::displayUpgradeNotice().
  • TWEAK: Update cnLicense to render the support license key and the plugin's changelog on the Plugins admin page.
  • OTHER: Update wsScreenOptions to version 1.3 and move to the Vendors folder.
  • OTHER: Update Browser.php to version 2.0.
  • DEV: phpDoc Fixes.

8.5.23 08/26/2016

  • TWEAK: Add the cn-cat-has-children class if a category has children in the term list.
  • TWEAK: Remove any empty items that might exist as the result of the cn_entry_output_category_item filter being hooked into.
  • TWEAK: Refactor cnAdminFunction::managePageLimitSave() to be more robust in order to prevent fatal string to array PHP errors.
  • BUG: Correct the display of the keyword search term result message by removing the duplicate term display.
  • BUG: Skipped escaped shortcodes in cnShortcode::find() to prevent the escaped Connections shortcode from being "cleaned" and unescaping it.
  • I18N: Update POT file.
  • I18N: Update MO files.

8.5.22 08/15/2016

  • NEW: Introduce cnString::stripTags().
  • BUG: Correct logic in cnOutput::excerpt() would would prevent the display of a excerpt.
  • TWEAK: Use cnString::stripTags() instead of wp_strip_all_tags() when creating the excerpt.
  • TWEAK: Allow span tags within an excerpt.

8.5.21 08/11/2016

  • NEW: Add support for the district and county filters as shortcode options.
  • NEW: Introduce cnMetaboxAPI::getFieldType().
  • NEW: Introduce cnShortcode::removeCodePreTags().
  • NEW: Introduce cnShortcode::clean().
  • COMPATIBILITY: Add upload_size_limit filter to define the core WP constants for KB/MB/GB/TB_IN_BYTES if not set for some reason so the wp_max_upload_size() does not return 0.
  • TWEAK: Add trailing comma in allowed tags in cnString::excerpt().
  • TWEAK: Use wp_trip_all_tags() instead of strip_tags() in cnString::excerpt().
  • TWEAK: Change end of sentence characters in cnString::excerpt() from ,;?.! to ?,!.
  • TWEAK: Add the default option, if set, to the term select drop regardless if "enhanced" is set and true.
  • TWEAK: Refactor cnMessage::store() to be more robust in order to prevent fatal string to array PHP errors.
  • TWEAK: Refactor cnShortcode::write() to be more "smart" in writing the option values with/without quotes.
  • TWEAK: Add filters to conten_save_pre and the_content to remove code and pre tags from around the [connections] shortcode.
  • TWEAK: Add filter to conten_save_pre to remove fancy/smart quotes from within the [connections] shortcode and its options.
  • TWEAK: Refactor to remove theme specific exclusion by remove all but the initial shortcode in the content when viewing a single entry profile page.
  • TWEAK: Remove allow the shortcodes to be registered in the admin again so the clean up filter can be ran against the [connections] shortcode.
  • TWEAK: Update CSS to ensure dotted line does not display under the abbr tag.
  • BUG: Remove use of unused variable.
  • BUG: Ensure the read more string is added at end of excerpt. In some cases it would be inserted between a closing HTML tag and end of sentence character.
  • OTHER: Spelling corrections.
  • OTHER: Correct URL to Google Get Browser Key for Google Maps API.
  • OTHER: Update EDD-SL Plugin Updater to 1.6.5.
  • OTHER: Add @todo to cnMessage class.
  • OTHER: Update minified CSS files.
  • I18N: Update POT file.
  • I18N: Update MO files.
  • DEV: phpDoc fixes.
  • DEV: Code formatting fixes.

8.5.20 07/15/2016

  • NEW: Introduce the cn_csv_export_fields_config filter.
  • NEW: Add ability to the CSV Export All tool to export entry meta when registered by plugins.
  • COMPATIBILITY: Add a custom CSS file for the Enfold theme to help ensure the core Chosen styles are not broken by Enfold.
  • TWEAK: Export the address line 4, district and county fields when exporting addresses.
  • TWEAK: Use strlen() when checking for empty URLs before adding a social network link.
  • TWEAK: Use strlen() when checking for empty URLs before adding a link.
  • TWEAK: Add placeholder_option attribute in CN_Walker_Term_Select_List_Enhanced.
  • TWEAK: Add a readonly attribute to cnHTML::group().
  • TWEAK: Setup the $fields array to be passed to the cn_csv_export_fields_config filter.
  • BUG: Bracket variable to prevent export errors.
  • BUG: Correct some action name prefixes in the system info code.
  • OTHER: Update Chosen to 1.6.1.
  • OTHER: Remove dead unused code.
  • DEV: Fix array alignment.
  • I18N: Include Spanish (Mexico) translation.
  • I18N: Update POT file.
  • I18N: Update MO files.

8.5.19 07/07/2016

  • NEW: Update database schema to support address line 4, district and county fields.
  • NEW: Introduce cnOutput::excerpt().
  • NEW: Introduce cnFormatting::toCamelCase().
  • NEW: Introduce cnFunction::isDimensionalArray().
  • NEW: Introduce the cn_address-pre_setup filter.
  • NEW: Introduce the cn_phone-pre_setup filter.
  • NEW: Introduce the cn_email-pre_setup filter.
  • NEW: Introduce the cn_im-pre_setup filter.
  • NEW: Introduce the cn_social_network-pre_setup filter.
  • NEW: Introduce the cn_link-pre_setup filter.
  • NEW: Introduce the cn_date-pre_setup filter.
  • NEW: Add support to cnHTML::attribute() for the HTML5 data attribute.
  • NEW: Add support to cnHTML::select() for the the HTML5 data attribute.
  • TWEAK: Use https when reverse geocoding an address utilizing the Google Maps API.
  • TWEAK: Register the cn-district and cn-county query vars.
  • TWEAK: Add the rewrite rules for district and county.
  • TWEAK: Add support for district and county permalinks in cnURL::permalink().
  • TWEAK: Add settings for the district and county permalink base as well as the options to enable/disable their permalinks when displaying.
  • TWEAK: Add support for display/db sanitation option in cnSanitize::field().
  • TWEAK: Add support for adding/updating addess line 4, district and county in cnEntry.
  • TWEAK: Display the address line 4, district and county field in the Manage admin page.
  • TWEAK: Update cnOutput::getAddressBlock() to display address line 4, county and district.
  • TWEAK: Add support for the address district and country fields in cnRetrieve::entries() and cnRetrieve::addresses().
  • TWEAK: Add the district and county permalink base to the option on update.
  • TWEAK: Update the admin CSS to tweak the display of the address district and county fields when adding/editing an entry.
  • TWEAK: Add the Google Maps API browser API key to the query string if it was added in the settings.
  • TWEAK: When updating an entry, get addresses in the db context for proper sanitization.
  • TWEAK: Change how spacing is applied for the readonly attribute for the date picker.
  • TWEAK: Add readonly support to the quicktag field.
  • TWEAK: Remove pre WP 3.3 backwards compatibility for the rte field.
  • TWEAK: Add support for the readonly attribute in cnHTML::group().
  • TWEAK: Add support for registering a field as read only when registering a custom field.
  • BUG: Fix bug that always set the user to none when adding/editing a linked entry.
  • BUG: Add missing attribute type in db content in cnSanitize::field().
  • OTHER: Correct misspelling.
  • OTHER: Remove stray whitespace.
  • OTHER: Remove unnecessary break.
  • OTHER: Update EDD-SL Updater library.
  • I18N: Update POT file.
  • I18N: Update MO files.
  • DEV: phpDoc fix.

8.5.18 06/24/2016

  • NEW: Introduce cnCategory::getCurrent().
  • NEW: Introduce cnSanitize::htmlClass().
  • NEW: Introduce cnFunction::escAttributeDeep().
  • NEW: Add readonly support to the datapicker custom field type.
  • NEW: Introduce cnTemplatePart::getCategoryParents().
  • NEW: Introduce cnTemplatePart::categoryBreadcrumb().
  • NEW: Introduce the cn_term_list_class filter.
  • NEW: Introduce the cn_term_children_list_class filter.
  • NEW: Introduce the cn_term_list_item_class filter.
  • NEW: Introduce the cn_term_list_item filter.
  • NEW: Introduce the cn_output_name_default_atts filter.
  • NEW: Introduce the cn_output_family_default_atts filter.
  • NEW: Introduce the cn_output_atts_title filter.
  • NEW: Introduce the cn_output_atts_orgunit filter.
  • NEW: Introduce the cn_output_atts_contact_name filter.
  • NEW: Introduce the cn_output_atts_address filter.
  • NEW: Introduce the cn_output_atts_map filter.
  • NEW: Introduce the cn_output_atts_phone filter.
  • NEW: Introduce the cn_output_atts_email filter.
  • NEW: Introduce the cn_output_atts_im filter.
  • NEW: Introduce the cn_output_atts_socialmedia filter.
  • NEW: Introduce the cn_output_atts_link filter.
  • NEW: Introduce the cn_output_atts_date filter.
  • NEW: Introduce the cn_output_atts_notes filter.
  • NEW: Introduce the cn_output_atts_bio filter.
  • TWEAK: Simplify cnTemplatePart::categoryDescription() utilizing cnCategory::getCurrent().
  • TWEAK: The term count span should not be rendered if the show count option false.
  • TWEAK: Change the form id name for the add/edit categories admin form.
  • TWEAK: Add file, url, path and basename properties to the cnTerm_Meta_UI class.
  • TWEAK: Complete refactor of cnOutput::getCategoryBlock().
  • TWEAK: Add line_4, district and county to permitted valid field in cnEntry::setAddresses() as prep for when those fields are added.
  • BUG: Search results message should display full query string as first search term.
  • BUG: Correct the cn_entry_part-($part} filter name. It was using an unset variable rendering it useless.
  • BUG: Pass the search terms in the cn_search_fulltext_terms filters.
  • BUG: The page meta title should be returned unchanged when querying by multiple category IDs.
  • BUG: Correct capitalization of cnCategory::getID().
  • I18N: Update POT file.
  • I18N: Update MO file.
  • OTHER: Correct misspelling.
  • DEV: phpDoc fix.

8.5.17 06/09/2016

  • NEW: Add support for a number field within the Settings API.
  • NEW: Introduce the cn_root_rewrite_rule-landing filter.
  • NEW: Introduce the cn_root_rewrite_rule-view filter.
  • NEW: Introduce the cn_page_rewrite_rule-landing filter.
  • NEW: Introduce the cn_page_rewrite_rule-view filter.
  • NEW: Introduce the cn_cpt_rewrite_rule-landing filter.
  • NEW: Introduce the cn_cpt_rewrite_rule-view filter.
  • NEW: Introduce the cn_permalink-{type} filter.
  • TWEAK: Use sanitize_html_class() rather than esc_attr() when outputting HTML class attributes.
  • TWEAK: Tweak to search which should give preference to full string results over individual terms within the string.
  • TWEAK: Allow 0 to be set as a default value of a setting.
  • TWEAK: Add support for the force_home and home_id parameters in cnTemplatePart::categoryLinkDescendant() to be passed when creating the category permalinks.
  • TWEAK: Remove use of the $connections global var in cnTemplateParts::categoryLinkDescendant().
  • TWEAK: Add support for the force_home and home_id parameters in cnTerm::permalink() to be passed when creating the category permalinks.
  • TWEAK: Add support for the force_home and home_id parameters in CN_Walker_Term_List::render() to be passed when creating the category permalinks.
  • BUG: Use proper capitalization for get_the_ID().
  • I18N: Update POT file.
  • I18N: Update MO files.
  • OTHER: Remove several blank lines.
  • DEV: Fix some minor code alignment issues in cnSettingsAPI.

8.5.16 06/03/2016

  • NEW: Introduce the cn_entry_action_back_atts filter.
  • TWEAK: Remove the on_click event handler attached to the back to directory link.
  • TWEAK: Pass the home_id and force_home shortcode options when creating the back to directory link.
  • TWEAK: Refactor cnTemplateParts::entryAction_Back method to introduce the cn_entry_action_back_atts filter.
  • TWEAK: Override the parseCSV core class to implement BOM stripping in the load_data() method.
  • TWEAK: Remove PHP4 style constructor in the Browser library.
  • BUG: Correct query bug in cnRetrieve::entries when querying entries by radius.
  • BUG: Add missing EOL when CN_MULTISITE_ENABLED is TRUE.
  • OTHER: Remove stray extra spaces.
  • DEV: phpDoc fixes.

8.5.15 05/13/2016

  • NEW: Introduce the cn_page_meta_title, cn_page_title_separator and cn_page_title filters in cnSEO.
  • NEW: Add support for Google Maps API browser and server keys.
  • NEW: Introduce the cn_form_open_action filter.
  • NEW: Introduce cnQuery::where() and cnQuery::in() methods.
  • NEW: Introduce meta_query support to the [connections] shortcode.
  • TWEAK: Send geocoding queries using https and remove the unneeded sensor parameter.
  • TWEAK: Use wp_kses_post() rather than esc_html() when escaping search results messages to allow HTML in the messages.
  • TWEAK: Wrap the term count in a span so it can be selected with CSS.
  • TWEAK: Remove an PHP_EOL so there is no whitespace between terms in the list in class CN_Walker_Term_List.
  • TWEAK: When displaying the character index, take into account the users selected visibility filter on the Manage admin page.
  • TWEAK: Add the wp-content folder as a searchable path for connections-templates.
  • TWEAK: Add the Kleo template to the template compatibility list for the single shortcode filter.
  • TWEAK: Utilize cnRetrieve::setQueryVisiblity() in cnRetrieve::entries() to reduce code duplication.
  • TWEAK: Utilize cnRetrieve::setQueryStatus() in cnRetrieve::entries() to reduce code duplication.
  • TWEAK: Utilize cnQuery::where() where possible in cnRetrieve to reduce code complexity.
  • TWEAK: Refactor the way the entry relationship are saved and read to allow an individual to be added to a family multiple times.
  • TWEAK: When displaying the character index on the Manage admin page it should take into account the users selected visibility filter.
  • BUG: Correct geocoding query encoding by not double encoding it.
  • BUG: Correct misspelling of get_the_ID().
  • BUG: Ensure trailing slash on pagination permalinks.
  • BUG: Must use a strict check for the linked user meta entry ID and the entry ID retrieved from the Connections table because false = 0 in PHP.
  • BUG: Add end_el() to the CN_Walker_Term_List class so the children terms are added as child unordered lists within the parent term list item.
  • BUG: Fix bug in cnRetrieve::setQueryVisibility().
  • BUG: Do not pass $atts to cnEntry::getFamilyMemebers() as it is unneeded.
  • OTHER: Correct spelling error.
  • DEV: phpDoc fixes.
  • DEV: Correct code alignment and remove extra blanks lines.

8.5.14 04/13/2016

  • NEW: Add support for the name_format option to the [upcoming_list] shortcode.
  • NEW: Introduce the cn_pre_save_meta filter.
  • NEW: Introduce the cn_pre_save_meta_skip and cn_pre_save_meta_skip-{fieldID} filters.
  • NEW: Introduce the cn_entry_query_clauses filter.
  • NEW: Introduce the cnQuery class.
  • NEW: Add support for CPT posts drop down in the cnSettingsAPI.
  • NEW: Add field alias checkbox-group in cnSettingsAPI.
  • NEW: Introduce the cpt-checkbox-group field type in cnSettingsAPI.
  • NEW: Introduce the cn_form_open_default_atts and cn_form_open_atts filters.
  • NEW: Introduce the cn_pagination_default_atts and cn_pagination_atts filters.
  • NEW: Introduce cnSettingsAPI::flushRewriteRules() which can be called to set the option to tell Connections to flush the rewrite rules.
  • NEW: Add a new advanced setting options to enable CPT support and define which CPT/s to add support for.
  • TWEAK: Replace get_query_var() with cnQuery::getVar() throughout to help prevent poorly coded plugins and themes from breaking Connections.
  • TWEAK: Register the shortcodes on on the frontend to prevent other plugins from running them in the admin.
  • TWEAK: User filters to prevent the bio and notes fields from being saved as meta.
  • TWEAK: Remove the hack that was in place to prevent the bio notes fields from being save as meta.
  • TWEAK: Add the ordo (Latin for order since ORDER is a SQL reserved keyword) column to the CN_ENTRY_TABLE. Add the upgrade routine to add the column to existing installations. Bump the DB version to 0.3.
  • TWEAK: Change the home page id select drop down to use the new cpt-pages select drop down field type so CPT posts will be list as options for the directory home page.
  • TWEAK: Remove use of deprecated function in cnRegisterSettings::sanitizeImageSettings().
  • TWEAK: Update cnRegisterSettings::sanitizeURLBase() to use cnRegisterSettings::flushRewriteRules().
  • TWEAK: Add the necessary rewrite rules for the user defined CPT/s to support.
  • TWEAK: cnTerm::get() used in CN_Walker_Term_List::start_el() can return NULL || an instance of WP_Error, so, lets check for that.
  • BUG: Remove unused global var in cnEntry.
  • BUG: Remove errant saveOptions() call in the db upgrade routine. Possible responsible for db upgrades being skipped in rare cases.
  • BUG: Add a missing saveOptions call in one of the upgrade routines.
  • BUG: Correct the name cnGEO to cnGeo class call in cnRegisterSettings.
  • BUG: Fix double POST requests for extension/template update checks.
  • I18N: Update POT file.
  • I18N: Update MO files.
  • OTHER: Fix some minor whitespace issues in the inc.upgrade.php file.
  • OTHER: Few code styling fixes in cnSettingsAPI.
  • OTHER: Remove support for WordPress 3.3 in the cnSettingsAPI.
  • OTHER: Correct misspellings.
  • DEV: phpDoc fixes.

8.5.13 03/11/2016

  • TWEAK: General code cleanup of cnMessage to fix phpDoc and correct potential PHP warning/error notices by checking for existing array indexes before working with them.
  • TWEAK: Refactor cnEntryMetabox::address() to remove duplicate code.
  • DEV: Add a missing class phpDoc header.
  • I18N: Update POT file.
  • I18N: Update MO files.

8.5.12 03/04/2016

  • BUG: Set format to string for lat/lng instead of float when passing the values thru wpdb->prepare() to prevent them from being rounded at 6 decimal places.
  • BUG: The "Recently Added" Dashboard widget would show entries in the moderation queue.
  • BUG: The "Recently Modified" Dashboard widget would show entries in the moderation queue.
  • BUG: Correct bug in the cnHTML::textarea() method.
  • TWEAK: Reduce image quality default from 90 to 82 to match upcoming change to WordPress to reduce image sizes without adversely affecting perceived image quality.
  • TWEAK Check for ABSPATH at top of image editor classes to help prevent direct access.
  • TWEAK: Escape URL on the Manage admin page for filter by category.
  • TWEAK: Minor tweaks to the Templates admin page.
  • TWEAK: The "Awaiting Moderation" Dashboard widget will now show the newest first instead of the oldest.
  • TWEAK: Refactor cnEntryMetabox::links() to remove duplicate code.
  • TWEAK: Refactor cnEntryMetabox::dates() to remove duplicate code.
  • TWEAK: CSS tweaks to the Templates admin page.
  • OTHER: Correct misspelling.
  • OTHER: Update the minified CSS and JS files.
  • DEV: Couple minor phpDoc fixes.

8.5.11 02/12/2016

  • COMPATIBILITY: Add an Enfold theme compatibility shim when viewing a single entry.'s detail/profile view.
  • BUG: Correct bug for mouseover hover text for email links so they correctly reflect the email type.
  • BUG: Correct an error in the admin javascript which prevented a repeatable field from collapsing.
  • TWEAK: Move the geocode button to be within the address-geo div in the Address field metabox.
  • TWEAK: Fix the alpha index with many character from overlapping the table header.
  • TWEAK: Correct the positioning of a the repeatable field toggle arrow.
  • TWEAK: Add a margin the the #minor-publishing div to fix the spacing of the role capability reset metabox.
  • TWEAK: Cleanup the address field metabox inputs for a little cleaner presentation.
  • TWEAK: Add missing container div on the geocode button when editing an entry with an existing address.
  • TWEAK: Tweak styling of the phone number field metabox to add more whitespace.
  • TWEAK: Tweak styling of the email address field metabox to add more whitespace.
  • TWEAK: Tweak styling of the instant messenger field metabox to add more whitespace.
  • TWEAK: Tweak styling of the social media network field metabox to add more whitespace.
  • TWEAK: Tweak styling of the link field metabox to add more whitespace.
  • TWEAK: Tweak positioning of the repeatable fields remove button.
  • TWEAK: Refactor cnEntryMetabox::phone() to remove duplicate code.
  • TWEAK: Refactor cnEntryMetabox::email() to remove duplicate code.
  • TWEAK: Refactor cnEntryMetabox::messenger() to remove duplicate code.
  • TWEAK: Refactor cnEntryMetabox::social() to remove duplicate code.
  • OTHER: Correct a few misspellings in cnGeo in the phpDoc.
  • OTHER: Update EDD_SL_Plugin_Updater to 1.6.3.
  • OTHER: Remove unused variables in cnEntryMetabox.
  • DEV: Add a @todo to cnShortcode.
  • DEV: Minor phpDoc fixes in cnEntryMetabox.

8.5.10 02/05/2016

  • NEW: Add preferred class names for entry data that has been set as the preferred option. This will allow them to be targeted with CSS to allow differentiation.
  • NEW: Introduce cnTerm_Object.
  • NEW: Various changes in cnTerm to bring methods back into alignment with WordPress 4.4.
  • BUG: Correct bug that prevented the db upgrade routine from running.
  • BUG: Fix the pagination links when the directory is used on the page set as the WordPress Front Page.
  • TWEAK: Simplify the logic which determines which entries to retrieve based on entry status.
  • TWEAK: Simplify the logic to retrieve entries by type.
  • TWEAK: Simplify the logic to exclude categories which results in fewer db queries.
  • TWEAK: Simplify the logic to include categories which results in fewer db queries.
  • TWEAK: Simplify the logic in cnRetrieve::setQueryStatus().
  • TWEAK: Permit only the supported statuses to be queried in cnRetrieve::setQueryStatus().
  • TWEAK: Simplify cnRetrieve::recordCount() to use setQueryVisibility() and setQueryStatus().
  • TWEAK: Make cnRetrieve::addresses() a static method.
  • TWEAK: Complete refactor of the cnRetrieve::phoneNumbers() method.
  • TWEAK: Complete refactor of cnRetrieve::emailAddresses().
  • TWEAK: Complete refactor of cnRetrieve::imIDs().
  • TWEAK: Complete refactor of cnRetrieve::socialMedia().
  • TWEAK: Complete refactor of cnRetrieve::links().
  • TWEAK: Complete refactor of cnRetrieve::dates().
  • TWEAK: Remove use of deprecated function and unused global var in cnRetrieve::search().
  • TWEAK: Set the default year from 1970 to 1972 for the legacy anniversary/birthday fields to allows for a Feb 29th date on leap years.
  • TWEAK: Change cnMeta::updateCache() from private to public because it is required in cnTerm.
  • TWEAK: Update cnTerm::getRelationships(). Add support for taxonomy, parent and term_taxonomy_id options for the order_by param. Add the parent param to limit results to a given term ID. Add support for term meta queries.
  • TWEAK: Update cnTerm::getTaxonomyTerms() to support the name and childless params. Add support for term meta queries. Converted to return an array of cnTerm_Object objects.
  • TWEAK: Update cnTerm::getBy() to make the $taxonomy param optional if the $field param is set to term_taxonomy_id. Convert to return an array of cnTerm_Object objects.
  • TWEAK: Update cnTerm::get() to make the $taxonomy param optional. Converted it to return an array of cnTerm_Object objects.
  • TWEAK: Change cnTerm::childrenIDs() to be public.
  • TWEAK Deprecate cnTerm::get_hierarchy() because it is a duplicate of cnTerm::childrenIDs(). Delete code and return cnTerm::childrenIDs().
  • TWEAK: Remove use of deprecated method cnTerm::get_hierarchy(). Use cnTerm::childrenIDs() instead.
  • TWEAK: Remove filter which added support for meta queries cnTerm::getTaxonomyTerms() since it now supports it internally.
  • TWEAK: Ensure the name attribute is reset before executing cnTerm::getTaxonomyTerms() in the template walker classes.
  • TWEAK: Refactor cnRetrieve::entryTerms() for better caching of results and update cached results to return array of cnTerm_Object objects.
  • TWEAK: Refactor cnEntry::getCategory() to use cnRetrieve::entryTerms() and to get the term relationships on demand instead of preloading when cnEntry is created.
  • OTHER: Remove unused legacy methods in cnRetrieve.
  • OTHER: Remove unnecessary isset check in cnRetrieve::setQueryVisibility().
  • DEV: Update phpDoc in a couple cnTerm methods to note the WordPress core equivalent function.

8.5.9 02/01/2016

  • NEW: Add ABSPATH to the System Info.
  • NEW: Refactor cnTemplatePart::searchingMessage() to add filters and hooks to make it more configurable for developers.
  • BUG: Enqueue the JavaScript on the Settings Import/Export admin page.
  • BUG: Use CN_TEMPLATE_PATH instead of CN_PATH to include the core templates. Remove, the double forward slash.
  • BUG: Fix unescaped user search term in the admin. Unfiltered user input for the search field being sent directly via echo back to the user's browser.
  • BUG: Escape role names and capabilities submitted by the Connections : Roles admin page when adding/removing a role capability.
  • TWEAK: Tweak logic in cnUtility::getUUID() so if openssl_random_pseudo_bytes() fails, it'll gracefully fallback to the compatibility method rather than failing.
  • TWEAK: Remove instance of $plugindir = get_bloginfo( 'wpurl' ) . '/wp-content/plugins'; as requested by
  • TWEAK: Remove unused global from cnRole::reset().
  • TWEAK: Add message for user if they do not have access to any admin tools.
  • TWEAK: Correct the user capabilities for the Tools admin page to better align with the core WordPress user capabilities for the same functions.
  • TWEAK: Escape role names before resetting them.
  • TWEAK: Escape URL use to kickoff a DB upgrade.
  • TWEAK: Code cleanup of the DB upgrade message to make it more readable.
  • TWEAK: Escape CSV Export type before processing.
  • TWEAK: Escape Connections : Manage admin page view action.
  • TWEAK: Escape the output for the current character on the Connections : Manage admin page.
  • TWEAK: Escape the current log type being viewed.
  • TWEAK: Run absint() on log post ID.
  • OTHER: Reduce tags as requested by
  • OTHER: Correct misspelling in cnRole::reset().
  • OTHER: Add newline at EOF in class.capabilities.php.
  • OTHER: Remove an extra space.
  • DEV: Use minified files instead of vendor supplied packed files for jQuery goMap and MarkerClusterer per guidelines.
  • DEV: Use Yoda condition.

8.5.8 01/08/2016

  • NEW: CSV export will now export the visibility of address, phone, email and dates.
  • NEW: CSV export will now export the visibility status of social media, instant messenger and links.
  • NEW: CSV export will now export the image and logo URL/s.
  • COMPATIBILITY: Remove spaces after delimiter in CSV export for Excel compatibility.
  • BUG: Correct bug in setting the radio group name attribute.
  • BUG: Properly sanitize the address fields when saving an entry.
  • TWEAK: Remove unused global var $current_user in several methods in cnRetrieve. Remove unused calls to get_currentuserinfo() which will be deprecated in WordPress 4.5.
  • TWEAK: Move the header breakout fields and field types to be within their switch case so they are only run when needed instead on every field export type.
  • TWEAK: Correct the user capabilities for the Tools admin page to better align with the core WordPress user capabilities for the same functions.
  • TWEAK: Add missing user capability checks for system info and remote system info tools.
  • OTHER: Tweak the default tool tab to be the first registered tab rather than being hard coded.
  • OTHER: Update link to the documentation page.
  • OTHER: Remove TimThumb from the vendors folder and most references to it from the code and text since it has not been needed for well over a year now.
  • DEV: Add ability to register a tab with a user role capability so the user must have that capability in order to access that tool tab.

Complete Changelog can be found here.

A comprehensive list of FAQs can be found here.

How do I display the business directory on my site?

We have a QuickStart available that'll walk you thru the most basic setup. Basically all you need to do is, create a page, and add the [connections] shortcode and then start adding entries to your directory.

Will it work with my theme?

Connections Business Directory has been designed to work with any theme.

Is Connections Business Directory translation-ready?

Yes it is. Connections Business Directory comes with many user supplied translations. We use Transifex to manage translations. This service make it easy for us manage and easy for you to translate. To read more, see this page.

Is Connections Business Directory compatible with WordPress Multisite?

Yes it is. However, do not Network activate Connections. Activate it on only the subsites that you wish to use Connections.

Is it possible to share entries with other sites within a WordPress Multisite installation?

Yes this is possible but there is a special setup required to do so. It is recommended this is done before added entries to your business directory.

  1. Activate Connections Business Directory the primary site.
  2. Add define( 'CN_MULTISITE_ENABLED', FALSE ); to your wp-config.php file. NOTE: If you have added any entries to any of your subsites, that data will be lost as Connections will read the directory entry data from the primary site's database tables.
  3. Activate Connections Business Directory on the subsites you wish to use Connections.


Version 8.5.32

Requires WordPress version: 4.3 or higher

Compatible up to: 4.7.2

Last Updated 12 Dec 2016

Date Added: 05 Jan 2009

Plugin Homepage


4.9 stars
298 ratings


Not Enough Data

Works: 0
Broken: 0