Connections Business Directory


Showcase | Documentation | Support | Templates | Extensions

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…


  • Compatible with all themes including popular themes such as Avada, Divi, Enfold and OceanWP.
  • Compatible with most popular page builders such as Elementor, Beaver Builder, Brizy, Visual Composer, Fusion, SiteOrigin, etc…
  • Supports the WordPress Block (Gutenberg) Editor with the following blocks.
    • Carousel Block :: Display your directory as a carousel.
    • Directory Block :: Use this block to embed your directory in a page.
    • Team Block :: It’s easy to use Connections to build your team page! Team Block is a full featured block with multiple layout styles. While premium team plugins can set you back $20 or more, Team Block is free for all Connections users.
    • Upcoming List Block :: Use this block to display an upcoming list of anniversaries, birthdays or other events.
  • Highly rated support.
  • Continuously updated bringing you new features for free.
  • A growing selection of Content Blocks:
    • Related Entries:: Display related Entries in a mobile responsive carousel.
    • Nearby Entries:: Increase discoverability of Entries by displaying nearby Entries in a mobile responsive carousel.
    • Recently Viewed:: A list a directory Entries the user has recently viewed.
    • Last Viewed:: The last directory Entry the user viewed.
    • Frontend Entry Management:: Management options include a quick link to edit the Entry and a Delete option.
    • Entry Meta:: Display details such as when the Entry was added nad last modified and by whom.
  • 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.
  • Anniversary and Birthday Emails :: Add the ability to automatically send a customizable email to entries on their anniversary or birthday.

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]




Este plugin proporciona 4 bloques.

  • Carousel
  • Directory
  • Upcoming
  • Team


A comprehensive list of FAQs can be found here.

How do I install Connections?

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.

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.

What are the requirements to run Connections?

  • WordPress version: >= 4.4
  • PHP version: >= 5.2.4 ( >= 7.0 is highly recommended)
  • 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.


16 de septiembre de 2021
Service and detailed responses are super efficient and fast. I created over 30+ directories last 10-12 years, with plugins and themes which have become resource eating and "all-the-same" look. Connections Business Directories, where have you been? I am settling all my directories to use Connections. A designs build for today's search requirements N.A.P. - Name, Address, Phone. in an easy to find look, especially for the Mobile world of Today. Steven, your service in one word: Excellent!
6 de septiembre de 2021
I had an issue that was created by a Theme update, Steven & his support team diagnosed and solved the problem in next to no time. Very, very impressive!
1 de septiembre de 2021
Just installed in my new website, had some issue for an unusual editor, but I received an incredible support. I recommended as best app!
22 de julio de 2021
Excellent plug in. Every question we have had has been answered and resolved to our satisfaction in less than 24 hours. Customer support is first class. Highly recommend this plug in.
16 de julio de 2021
Have just started using this plugin and a premium template. Must say that I am very impressed. The documentation is easy to follow with clear instructions. Hit on an item that I did not fully understand and after submitting a support ticket, within an hour, I received a reply from the Developer explaining what I needed to do to achieve the result I was looking for. Can highly recommend this plug and the optional extras.
Leer todas las 394 reseñas

Colaboradores y desarrolladores

«Connections Business Directory» es un software de código abierto. Las siguientes personas han colaborado con este plugin.


«Connections Business Directory» ha sido traducido a 1 idioma local. Gracias a los traductores por sus contribuciones.

Traduce «Connections Business Directory» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios

Complete Changelog can be found here.

10.4.3 09/27/2021

  • SECURITY: Entry data on the Manage admin page should be escaped to prevent high level WordPress Users to perform Cross-Site Scripting attacks.

10.4.2 09/23/2021

  • COMPATIBILITY: Add compatibility shim for the All-in-One Video Gallery plugin.
  • TWEAK: Ensure value is object before accessing its properties.

10.4.1 09/14/2021

  • NEW: Introduce _::isInteger() and _::isPositiveInteger().
  • NEW: Introduce the suppress_filters parameter in cnRetrieve::entries().
  • NEW: Introduce cnTemplateFactory::maybeActivate().
  • TWEAK: Correct initiate new objects.
  • TWEAK: Use self shortcode keyword instead of classname when checking instance of object.
  • TWEAK: Utilize the suppress_filters property in cnRetrieve::upcoming().
  • TWEAK: Utilize suppress_filters in the admin dashboard widgets.
  • TWEAK: Check to make sure object property is set before use.
  • TWEAK: Remove unnecessary isset() check.
  • TWEAK: Action to register templates should be run before templates are activated.
  • TWEAK: Add check for instance of self when initiating the template factory.
  • TWEAK: Update action hooks to call cnTemplateFactory::maybeActivate().
  • TWEAK: Add call to cnTemplateFactory::maybeActivate() in cnTemplateFactory(). Needed to support the new Widget Editor because it seems the rest_init hook does not fire or is not fired in time to render the widget previews. Templates are required to be activated because templates are used to render the widgets.
  • OTHER: Correct typos.
  • DEV: phpDoc corrections.
  • DEV: phpDoc updates.

10.4 09/03/2021

  • NEW: Introduce the _::isEmpty() and _::notEmpty() helper methods.
  • NEW: Introduce the _string::applyPrefix() helper method.
  • NEW: Introduce the Fields API.
  • NEW: Introduce the helper _escape class.
  • NEW: Introduce cnScript::maybeEnqueueStyle().
  • TWEAK: Remove unreachable break statements in switches.
  • TWEAK: Ensure deprecated messages are shown only when the environment type is set to development.
  • TWEAK: Allow overflow-x and overflow-y as valid inline style attributes.
  • TWEAK: Check for instance of Label before calling a method.
  • TWEAK: Update deprecated method call with the updated replacement.
  • TWEAK: Remove use of deprecated form field methods used on the Manage admin page.
  • TWEAK: Conditionally enqueue the Leaflet library.
  • TWEAK: Replace one-off code of fields in the Metabox API with fields created using the Fields API.
  • TWEAK: Replace one-off code of fields in the Settings API with fields created using the Fields API.
  • TWEAK: Change the init priority of the Metabox API to 11.
  • BUG: Correct translated country name.
  • BUG: Return empty string as default case in switch for HTML fields.
  • BUG: No need to assign the CPT field in the Settings API to the variable as it will be rendered in the recursive call.
  • OTHER: Readme.txt correction.
  • OTHER: Correct misspelling.
  • OTHER: Removed unused global variable.
  • OTHER: Remove extra semi-colon.
  • INTEGRATION: Update The Rank Math integration to change the robots meta to noindex the paginated directory results.
  • COMPATIBILITY: Remove the single shortcode filter if the PageLayer plugin is active.
  • DEV: phpDoc corrections.
  • DEV: Public function should be static.
  • DEV: Correct code formatting.
  • DEV: phpDoc updates to cnHTML; deprecating all methods.
  • DEV: Add _deprecated_function() calls to cnHTML methods.
  • DEV: Add _deprecated_argument() calls to cnHTML methods.

10.3.2 07/23/2021

  • TWEAK: Use of the _deprecated::_func() rapper function for _deprecated_function() to ensure warnings are not triggered during AJAX or REST requests even if WP_DEBUG is enabled. Message will only trigger when environment type is set to development.
  • BUG: Do not set offset when querying Entry URLs while building the sitemap url index when the page number is 0 (zero).

10.3.1 07/19/2021

  • NEW: Introduce Taxonomy\Partial\getTermParents().
  • TWEAK: No need to import the core Connections Directory object on the term taxonomy admin pages since it is not utilized.
  • TWEAK: Deprecate cnTemplatePart::getCategoryParents() and refactor to utilize Taxonomy\Partial\getTermParents().
  • TWEAK: Remove instances of cnTemplatePart::getCategoryParents() and refactor to utilize Taxonomy\Partial\getTermParents().
  • TWEAK: Ensure Content Block callback is callable before registering the action callback.
  • TWEAK: Ensure taxonomy term permalink returns a string before escaping and rendering the permalink HTML.
  • TWEAK: Ensure term is an array and not empty before attempting to traverse the term results.
  • TWEAK: Minor refactor of Content_Block::isPermitted() to ensure callback is callable and if return value is not a bool, return false.
  • TWEAK: Set the default value in Content_Block::heading() to an empty string as the default to prevent a possible null as the return value.
  • TWEAK: Set the default value of label in Content_Block\Entry\Taxonomy::content() to an empty string as the default to prevent a possible null as the return value.
  • BUG: The category__in and category__not_in parameters should be parse as arrays.
  • BUG: Correct form ID name on the term taxonomy admin page to be consistent with WP core.
  • BUG: Ensure the force_home and home_id parameters are passed in the Taxonomy Term widget to prevent PHP notices about undefined indexes.
  • DEV: phpDoc corrections.
  • DEV: Remove unused import.
  • DEV: Updates to .composer.json.
  • DEV: Updates to .gitignore.

10.3 07/10/2021

  • NEW: Introduce _length(), deprecate cnGEO::convert(), and refactor instances of cnGEO::convert() to utilize _length().
  • NEW: Introduce Taxonomy::getQueryVar() and Taxonomy::isPublicQueryable() methods.
  • NEW: Introduce cnRetrieve::getRegisteredQueryVars().
  • NEW: Introduce Request.
  • NEW: Introduce Query\Taxonomy and Query\Term classes.
  • NEW: Introduce the cn-template-is-single class to the shortcode markup.
  • TWEAK: Correct allow_public_override shortcode settings label and description.
  • TWEAK: Rename lock parameter in cnRetrieve::entries() to parse_request.
  • TWEAK: Replace qualifier with import.
  • TWEAK: Replace deprecated method with replacement method.
  • TWEAK: Correct replacement method for deprecated method.
  • TWEAK: Remove the legacy wp_current_category shortcode parameter.
  • TWEAK: Use absolute path to include deprecated category functions. The processEntryCategory() was not a global function as it should have been, it was local to another function.
  • TWEAK: Update _::decodeJSON to include additional error messages.
  • TWEAK: Refactor _::maybeJSONdecode() to be faster and more reliable.
  • TWEAK: Remove unnecessary break.
  • TWEAK: Combine global functions into a single file.
  • TWEAK: Extract helper functions from the cnTerm object. Introduce _getTermChildren, _getTermHierarchy, _padTermCounts and several more helper functions.
  • TWEAK: Update cnTerm to use new taxonomy helper functions.
  • TWEAK: Use the _deprecated_function() wrapper function in the cnTerm file.
  • TWEAK: Remove use of deprecated method.
  • TWEAK: Add deprecated filter hooks for backwards compatibility.
  • TWEAK: Replace legacy cnTerm_Objectclass with Taxonomy\Term.
  • TWEAK: Remove use of deprecated methods in the legacy cnCategory class.
  • TWEAK: The name suffix should have a comma between it and the surname.
  • TWEAK: The pagination template code had duplicate code in the if/else statement. Extract it.
  • TWEAK: Change the classname cn-is-single to cn-list-item-is-single for more accurate targeting.
  • TWEAK: Add timestamp to the template custom CSS file version string for cache busting.
  • TWEAK: When parsing query request variables; parse arrays, filter, decode, and unslash.
  • TWEAK: Refactor cnRetrieve::entries() to utilize both Request and Query\Taxonomy to remove code duplication and optimize query performance.
  • TWEAK: Move the Connections_Directory/Taxonomy/{$this->getSlug()}/Sanitize_Terms filter to Taxonomy\AttachTerms.
  • BUG: Add missing search results messages when filtering by district and county.
  • BUG: Cast string to float.
  • BUG: Do not disable the term checklist option when not displaying in the admin.
  • BUG: Pass raw Organization and Department fields to cnURL::permalink() slug attribute.
  • BUG: Correct return value isHierarchical().
  • BUG: Correctly order the country/region permalinks in the pagination.
  • BUG: Pass raw names when creating permalinks for county, district, city, state, zipcode, and country permalinks.
  • DEV: phpDoc corrections.
  • DEV: Update package.json with latest dev dependencies and webpack.config.js configuration options.
  • DEV: Update dist files.
  • DEV: Update vendor files.
  • DEV: Comment out unused code, marked for removal at later date.
  • DEV: Update package.json dependencies.
  • DEV: Introduce wp_get_environment_type() for backwards compatibility.
  • DEV: Introduce action/filter deprecation hooks. During AJAX, REST or if WP Environment is set to «production», messages will be logged instead of output on screen.
  • DEV: Use new deprecated filter hook wrapper function in the deprecated filters files.
  • DEV: Use new deprecated action hook wrapper function in the deprecated action file.
  • DEV: phpDoc corrections.
  • DEV: Add @todos.
  • OTHER: Update copyright year.
  • OTHER: Bump support WordPress version to 5.8.

10.2 04/15/2021

  • FEATURE: First pass at adding custom taxonomy API.
  • NEW: Introduce _string::insert().
  • NEW: Introduce cnRewrite::getPermalinkSlugs().
  • NEW: Introduce cnRewrite::generateRule().
  • NEW: Introduce cnShortcode::isSupportedPostType() helper method.
  • NEW: Introduce cnShortcode::getHomeID() helper method.
  • NEW: Introduce cnMetaboxAPI::defaultPageHooks().
  • NEW: Introduce ‘object_ids’ parameter in cnTerm::getTaxonomyTerms().
  • NEW: Introduce the Connections_Directory/Content_Blocks/Register filter.
  • TWEAK: Do array check be attempting to marge array to prevent potential PHP notice in some scenarios.
  • TWEAK: Move the WordPress mShot integration class to the integration folder and adjust the namespace accordingly.
  • TWEAK: Remove use of deprecated class cnFormatting in cnCategory.
  • TWEAK: Enable the transform URL in the Rank Math integration.
  • TWEAK: Register the namespaced rewrite tags which will be used to generate the rewrite rules.
  • TWEAK: Add noreferrer and nofollow attributes to the social media network links.
  • TWEAK: Ensure date is instance of DateTime before adding to date to Entry Dates.
  • TWEAK: Ensure date is instance of DateTime before setting the date format when adding backwards support for the anniversary and birthday date fields.
  • TWEAK: Update [connections] shortcode defaults to use the cnShortcode::getHomeID() helper method for the home_id shortcode attribute.
  • TWEAK: Ensure cloned fields are shown.
  • TWEAK: Remove use of deprecated click jQuery function.
  • TWEAK: Remove use of deprecated bind jQuery function.
  • TWEAK: Remove use of deprecated method cnFormatting::maybeJSONdecode() in cnMeta.
  • TWEAK: Use strnatcasecmp when sorting the admin menu array key index.
  • TWEAK: Add class parameter to form tag.
  • TWEAK: Add support for a default value for the text field input in the Settings API.
  • TWEAK: Utilize cnShortcode::getHomeID() and set the force_home attribute default to false in the callbacks for the view all list action and the character index.
  • TWEAK: Add echo attribute to the term list walker renderer.
  • TWEAK: Add categorychecklist class to the term list walker so it inherits the proper styles from WP.
  • TWEAK: Utilize cnMetaboxAPI::defaultPageHooks() when registering core default entry metaboxes.
  • TWEAK: Use strict comparison in cnTerm::descendants().
  • TWEAK: Do not set variable in comparison in cnTerm::descendants().
  • TWEAK: Eliminate the possibility of a trailing comma in the entry categories list when using the Split Categories addon.
  • TWEAK: Reset the Entry category block properties to their defaults after rendering.
  • TWEAK: Remove the locality, region, and postal code from the request query vars.
  • TWEAK: Use self instead of static when initiating SEO integration classes since they are final classes.
  • TWEAK: Only add the SEO filters if the [connections shortcode or Directory block is used on the queried post.
  • TWEAK: Check if the query post object is a support post type in the canonical redirect when on the front page.
  • BUG: The persistent log taxonomy should not have rewrite rules generated.
  • BUG: Only custom post types that are publicly queryable and have rewrite rules should be valid options when choosing to enable custom post type support.
  • BUG: Correct implode() usage. Array must be 2nd parameter.
  • BUG: Prevent characters from being removed from the beginning/end of post titles.
  • BUG: Refactor cnEntry::getCategory() to display attached children categories no matter the descendent depth.
  • BUG: Correct hook registration.
  • BUG: Add the missing schema for the bio and notes fields to the REST API endpoint.
  • COMPATIBILITY: Invalidate the Rank Math sitemaps cache when adding/deleting/updating and Entry.
  • COMPATIBILITY: Update plugin compatibility checks for WP Mail Logging and Email Log Plugin to be PHP 8.0 compliant.
  • COMPATIBILITY: Compatibility with the Post Categories by User for WordPress plugin by preventing this plugin from hiding the categories on the Connections admin pages.
  • OTHER: Update max WordPress version in compatibility check.
  • OTHER: Correct misspelling.
  • OTHER: Correct code formatting.
  • DEV: Remove commented out code.
  • DEV: Add a couple of todo’s.
  • DEV: phpDoc corrections.
  • DEV: Add deprecated SiteShot file for loading via legacy code. Reorder the class alias to prevent a PHP warning message.
  • DEV: Remove curly bracket array access from CSV library.
  • DEV: Update min/max PHP and WP requirements.
  • DEV: Correct PHP8 optional parameter before required parameter notice.

10.1 12/15/2020

  • FEATURE: Support for Yoast SEO sitemaps.
  • FEATURE: Support for Rank Math sitemaps.
  • TWEAK: Change the date format used in the sitemaps from DATE_ATOM to DATE_W3C.
  • TWEAK: Change Provider::getQueryArgs() from protected to public so it can be used in integrations.
  • TWEAK: Add several public methods to Provider so the protect/private properties can be accessed for integrations.
  • TWEAK: The persistent logs should not be public queryable.
  • TWEAK: Only supported custom types should be used when defining a Directory Homepage ID.
  • TWEAK: Use the set_screen_option_connections instead of the set-screen-option filter hook needed for the Screen Options tab settings to be saved appropriately.
  • TWEAK: If only a single instance of Connections is on a page, no need to add the instance ID to he sitemap index links.
  • DEV: phpDoc updates.
  • DEV: Inline code comment.
  • DEV: Remove no inspection tag.

10.0 12/08/2020

  • FEATURE: Support for WordPress sitemaps.
  • TWEAK: Ensure the persistent log posts do not display in the WP sitemaps if the site is in debug mode.
  • TWEAK: Use rawurlencode() when encoding the permalink for department, organization, district, county, locality, region, and country.
  • BUG: Correct find shortcode logic.
  • OTHER: Update readme.txt to make mention of the support of the native sitemaps support introduced in WordPress 5.5.

9.17 11/24/2020

  • TWEAK: Remove use of deprecated methods cnSanitize::htmlClass() and cnFunction::escAttributeDeep()` in the term list class.
  • TWEAK: Remove use of deprecated method cnValidate::userPermitted().
  • TWEAK: Remove use of deprecated methods cnSanitize::htmlClass() and cnFunction::escAttributeDeep()` in the term list class.
  • TWEAK: Do not apply the wpseo_title filter in the admin.
  • TWEAK: Comment out code legacy Yoast SEO compatibility code.
  • TWEAK: Do not apply array_filter() to shortcode $atts when viewing the single Entry detail/profile page.
  • TWEAK: Apply clear float fix to the form.
  • TWEAK: Use the get_cananical_url filter instead of the page_link filter to set the canonical page URL.
  • TWEAK: Relation separator should be within a span tag.
  • TWEAK: Add a few filters which should be reset between shortcode instances.
  • TWEAK: Use self when referencing method.
  • TWEAK: Add random support to the [cn-entry] shortcode.
  • TWEAK: Ensure the force_home option for the [cn-entry] shortcode is a boolean.
  • OTHER: Update readme.txt support link.
  • OTHER: Update fontawesome from 5.13.0 to 5.15.1.
  • DEV: Correct code formatting.
  • DEV: Update package.json dependencies.
  • DEV: Update webpack.config.js.
  • DEV: Update dist files.

9.16 11/06/2020

  • TWEAK: Add filter to the [cn-content] shortcode to support the Page Builder plugin by SiteOrigin.
  • OTHER: Remove the legacy social network icons to reduce plugin package size.
  • DEV: Code alignment.
  • DEV: Correct the replacement method for a deprecated method debug message.
  • DEV: Remove use of deprecated method cnValidate::userPermitted().
  • DEV: Remove use of deprecated method cnCountry::getCode().
  • DEV: Remove use of deprecated method cnOptions::getDateOptions().
  • DEV: Remove use of deprecated method cnFormatting::toCamelCase().
  • DEV: Remove use of deprecated method cnFunction::isDimensionalArray().
  • DEV: Remove use of deprecated method cnEntry::getFullFirstLastName().
  • DEV: Remove use of deprecated methods cnSanitize::htmlClass() and cnFunction::escAttributeDeep()` in the term list class.
  • DEV: Remove use of deprecated method cnUser::getFilterPage().
  • DEV: Remove use of deprecated method cnUtility::getUUID().
  • DEV: Remove use of deprecated method cnFormatting::maybeJSONencode().
  • DEV: Remove use of deprecated method cnFormatting::maybeJSONdecode().
  • DEV: Remove use of deprecated method cnUtility::toNumericHash().
  • DEV: Remove use of deprecated method in cnRetrieve.

9.15 10/30/2020

  • TWEAK: Pass additional parameters to the Connections_Directory/Shortcode/Conditional_Content/is_condition/{$this->atts['condition']} filter.
  • DEV: Change class variable from private to protected.
  • DEV: Add deprecated notices throughout so usages can be removed and old code cleaned up.

9.14 10/22/2020

  • NEW: Introduce the [cn-content] shortcode.
  • TWEAK: Rename «Custom Fields» metablock and Content Block to «Custom Metadata Fields» to help reduce confusion between «Custom Fields» and «custom fields».
  • TWEAK: Rename the «Entry Meta» Content Block to «Entry Metadata» for uniformity.
  • TWEAK: Minor tweak to ensure the section head di is not rendered if both the current character and repeat character index are disabled.
  • TWEAK: Add version check for Yoast SEO. Minimum supported version is 14.0.
  • TWEAK: Minor tweaks to the [cn-entry] shortcode initialization.
  • OTHER: CSS tweak, change double-quote to single-quote to match style.
  • DEV: Add phpDoc to filter.
  • DEV: Remove use of a couple deprecated methods.
  • DEV: Update dist files.

9.13 10/06/2020

  • NEW: Introduce Rank Math integration.
  • NEW: Introduce cnSEO::getImageMeta().
  • TWEAK: If both the Entry excerpt and bio are empty, fallback to the Entry address for the Entry meta description.
  • TWEAK: Add additional check to see if Yoast SEO is active or not before setting up integration.
  • TWEAK: Set Yoast SEO integration to run at priority 15, after Yoast SEO sets itself up.
  • TWEAK: Use cnSEO::getImageMeta() within the Yoast SEO integration. Providing common logic which is shared with the other SEO integrations.
  • TWEAK: Use self instead of static.
  • TWEAK: Tweak the fallback meta description to include address (for organization) and title|department|organization (for individuals).
  • BUG: Correct bug in address to string helper where district would output instead on county.
  • OTHER: Deprecate Yoast_SEO::getImageMeta()
  • DEV: phpDoc correction.

9.12 10/01/2020

  • NEW: Improve Yoast SEO integration.
  • NEW: Introduce the Connections_Directory/Content_Block/Content/{$id} action.
  • TWEAK: Change priority of the cnSEO::metaDesc() action callback to 1.
  • TWEAK: Declare cnSEO::metaTitle() as public.
  • TWEAK: Limit meta description to 155 characters.
  • TWEAK: Remove the Content-Length header when downloading vCard to deal with some web hosts which seem to add BOM to downloads corrupting the vCard.
  • DEV: Correct phpDoc and add missing deprecated file call.
  • DEV: phpDoc updates in cnSEO.
  • DEV: Add @todo for Rank Math compatibility.
  • DEV: Lay foundation for the new Conditional Content shortcode.

9.11 09/21/2020

  • NEW: Introduce _string::toKebabCase().
  • NEW: Introduce the Connections_Directory/Content_Block/Entry/Categories/Attributes filter.
  • DEV: Move the color utility class to its own namespaced file.
  • DEV: Move the dateutility class to its own namespaced file.
  • DEV: The _date class should be final.
  • DEV: Move the string utility class to its own namespaced file.
  • DEV: Move the formatting utility class to its own namespaced file.
  • DEV: cnSanitize::currency() should be static.
  • DEV: Remove unnecessary break statement.
  • DEV: Add _deprecated_file() calls to a couple deprecated files.
  • DEV: Add _deprecated_function() to a couple deprecated methods.
  • DEV: phpDoc updates.
  • DEV: Move the siteshot utility class to its own namespaced file.
  • DEV: Remove unused cnFunction::var_dump_error_log() method.
  • DEV: Move the utility functions class to its own namespaced file.
  • DEV: Move the URL utility class to its own namespaced file.
  • DEV: Add _deprecated_function() to the cnValidate::attributesArray() method.
  • DEV: Move the validate utility class to its own file.
  • DEV: Deprecate methods in the cnUtility class nad move code to the _ class to consolidate utility methods under a shortcode classname.
  • DEV: Moved several methods to be in the proper utility class and deprecated the existing methods.
  • DEV: Deprecate and pair on unused methods in cnValidate.

9.10 09/10/2020

  • FEATURE: Introduce the Recently Viewed and Last Viewed Content Blocks.
  • NEW: Introduce the Connections_Directory/Block/Carouse/Query_Parameters filter.
  • NEW: Add the link field to the Entry REST endpoint.
  • NEW: Add support for the exclude parameter in the REST API.
  • NEW: Introduce the Recently Viewed REST API Endpoint.
  • TWEAK: Check for instance of cnAddress before access its properties.
  • TWEAK: Keep core WP Editor from displaying the slider navigation text in the Carousel Block.
  • TWEAK: Rename cn-user.js to frontend.js.
  • TWEAK: Delete the frontend.min.js file as it is not needed since webpack will minify file.
  • TWEAK: Remove unused code in the frontend.js file.
  • TWEAK: Make a single call to cnQuery::getVar() when rendering an Entry on the frontend for improved performance.
  • TWEAK: Remove several unnecessary object buffers when rendering an Entry.
  • TWEAK: Rename Entry render variable to be more descriptive.
  • TWEAK: Move logic on whether to display the character index and section head to within where the Entry is rendered.
  • TWEAK: Remove the cn-list-head attribute.
  • TWEAK: Remove the cn-list-foot attribute.
  • TWEAK: Apply array_unique() and array_filter() to the list head and body container classes.
  • TWEAK: Remove the cn-list-foot attribute.
  • TWEAK: Remove the legacy connections-list class from the body container.
  • TWEAK: Move setting $is_single to outside of the loop. No need to set it on each iteration.
  • TWEAK: Cleanup the applied body classes. The cn-list-row and cn-list-row-alternate is applied only in the list view. Introduce the cn-list-item and cn-is-single classes.
  • TWEAK: Minor CSS tweaks to remove unnecessary specificity.
  • TWEAK: CSS clear after several core list containers. Necessary after removing the class that did the clear from the containers.
  • TWEAK: Do not show the character index when viewing the single Entry.
  • TWEAK: Abstract out template body section heading.
  • TWEAK: Abstract out the generation of the Entry card classes.
  • TWEAK: Ensure the permission_callback parameter is set when registering REST API Endpoints.
  • TWEAK: Add check to prevent index not found notice.
  • TWEAK: Implement limit on the Team Block to ensure page can be saved by WP.
  • TWEAK: Add 'data-skip-lazy="1" if lazy loading is false.
  • TWEAK: Move cnArray to a namespaced class and stub out files and autoloading for other utility classes and functions to consolidate and better organize the codebase.
  • TWEAK: Remove use of a few deprecated React components in the Team and Upcoming blocks.
  • TWEAK: Add lodash as a script dependency for the frontend script bundle.
  • TWEAK: Finally deprecate the cnOutput class because it was ambiguous.
  • TWEAK: Bumped «Tested up to:» to version 5.5 in readme.txt.
  • TWEAK: Bump «Requires at least:» to version 5.0 in readme.txt.
  • TWEAK: Update EntryName component with a asPermalink attribute.
  • TWEAK: Update the frontend script dependencies to support the Recently View Content Block.
  • TWEAK: Add placeholder support to the Entry Image React component.
  • TWEAK: Add default image width/height for unknown image types to prevent undefined index notifications.
  • TWEAK: Deprecate several template actions, replacing them with namespaced hook handles.
  • BUG: Correct another instance of implode «Passing glue string after array is deprecated.» notice.
  • BUG: Correct the style applied to the .cn-image-none class in the related carousels.
  • DEV: Remove extra newline.
  • DEV: Include JavaScript Cookie v2.2.1 as a vendor library.
  • DEV: Configure webpack entry point to create the frontend javascript bundle.
  • DEV: Register and enqueue the frontend javascript bundle with WordPress.
  • DEV: Remove commented code.
  • DEV: Rename variable to camelCase.
  • DEV: Remove comment block from CSS.
  • DEV: phpDoc updates.
  • DEV: Update Travis testing matrix.
  • DEV: Update min/max WP version in requirements check.
  • DEV: Update the dist files.

9.9.1 07/22/2020

  • TWEAK: Set the related Content Block margin to 0 to ensure margins are not inherited from theme, plugins, and such.
  • BUG: Correct usage of the cn_load_template filter.
  • DEV: Update the dist files.

9.9 07/17/2020

  • FEATURE: Introduce the Entries Nearby Content Block.
  • NEW: Introduce cnArray::push() helper method.
  • TWEAK: Make the image not available placeholder responsive friendly while retaining the aspect ratio.
  • TWEAK: Add a few basic styles to the Entry Actions vs relying on theme styling for lists.
  • TWEAK: Add a few basic styles for the Content Block layout for better more consistent presentation.
  • TWEAK: Introduce additional related carousel parameters that can be adjusted via a filter.
  • TWEAK: Add CSS to make the «image not available» placeholder responsive friendly while maintaining aspect ratio.
  • TWEAK: Make a few carousel CSS selectors a bit more specific to help ensure they are not easily overridden.
  • TWEAK: If the Content Block order has not yet been saved, fetch them via cnOptions::getContentBlocks().
  • TWEAK: Flipped the logic when Content Blocks should be included/excluded.
  • TWEAK: Remove the hardcoded limit with querying related Entries. Instead, use the supplied attribute.
  • BUG: Prevent output of empty heading tags in Content Blocks.
  • BUG: The $blocks variable should always be defined.
  • OTHER: Readme.txt tweaks.
  • DEV: Update the dist files.

9.8.2 07/11/2020

  • TWEAK: Remove unnecessary trim of Content Block IDs.
  • TWEAK: Simplify logic for excluding/including Content Blocks.
  • TWEAK: Include/exclude Content Blocks before setting up the block ID to avoid unnecessary processing.
  • TWEAK: Simplify the default parameters for Content Blocks.

9.8.1 07/09/2020

  • BUG: Correct logic for the include parameter for Content Blocks.
  • BUG: Content Blocks need to default to the order of the active blocks and not the order of the active blocks.
  • OTHER: Add link to blog post in changelog.
  • I18N: Update POT file.
  • I18N: Update MO files.

9.8 07/07/2020

  • FEATURE: Add 10 «Related To Entry» Content Blocks.
  • NEW: Add id__not_in parameter to cnRetrieve::entries()
  • NEW: Introduce cnUtility::numHash().
  • NEW: Introduce the cn_entry_query_random_seed filter.
  • NEW: Add Entry helper functions class. Includes the relatedTo() helper method.
  • TWEAK: Pass the entry object in the bio, excerpt and note filter.
  • TWEAK: Content_Block::content() should echo not return string.
  • TWEAK: Correct implode() parameters.
  • TWEAK: Make carousels show one slide and scroll one slide in mobile.
  • TWEAK: Ensure uniform Content Block ID attribute when rendered via action or thru the Content Block API.
  • TWEAK: Set called class short-name property when constructing a Content Block to utilize in dynamic hooks.
  • TWEAK: Update hooks to make them dynamic utilizing the called class short-name.
  • TWEAK: Move the HTML markup from the heading() method in the Content Block to the render() method for uniformity with other class methods. This also allows for easier setting of the heading parameter to allow for dynamic Content Block headings.
  • TWEAK: Update the Static Google Maps Content Block to utilize the Entry helper functions class.
  • OTHER: Correct misspelling.
  • DEV: Add phpDoc.
  • DEV: Update rinvex/countries to version 7.0.1.