{"id":298031,"date":"2026-04-22T00:07:08","date_gmt":"2026-04-22T00:07:08","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vieww-directory\/"},"modified":"2026-04-28T22:40:50","modified_gmt":"2026-04-28T22:40:50","slug":"vieww-directory","status":"publish","type":"plugin","link":"https:\/\/sv.wordpress.org\/plugins\/vieww-directory\/","author":23428051,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.4.1","stable_tag":"1.4.1","tested":"6.9.4","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Vieww Directory","header_author":"Jarrad Nicoll","header_description":"A flexible business directory plugin for WordPress. Manage member listings with logo, photos, contact details, categories and search. No ACF or Elementor Pro required.","assets_banners_color":"bfd5d6","last_updated":"2026-04-28 22:40:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/vieww.com.au\/plugins\/vieww-directory\/","header_author_uri":"https:\/\/nextpointdigital.com.au","rating":0,"author_block_rating":0,"active_installs":0,"downloads":155,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.0":{"tag":"1.3.0","author":"jarradnpd","date":"2026-04-22 00:07:51"},"1.3.1":{"tag":"1.3.1","author":"jarradnpd","date":"2026-04-22 00:23:48"},"1.3.2":{"tag":"1.3.2","author":"jarradnpd","date":"2026-04-22 00:46:35"},"1.4.0":{"tag":"1.4.0","author":"jarradnpd","date":"2026-04-28 22:23:06"},"1.4.1":{"tag":"1.4.1","author":"jarradnpd","date":"2026-04-28 22:40:50"}},"upgrade_notice":{"1.3.2":"<p>Critical fix: members saved in the block editor now correctly persist their Business Name as the post title and slug. Also adds a Settings page with an opt-out toggle for map features. Upgrade strongly recommended.<\/p>","1.3.0":"<p>Rebranded to Vieww Directory with automatic data migration, design customisation, and WordPress.org compliance. All existing data is migrated automatically.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3517840,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3517840,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3517872,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3517872,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.0","1.3.1","1.3.2","1.4.0","1.4.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Directory grid view with search bar and category filtering","2":"Single member profile page with contact details","3":"Admin member edit screen with business detail fields","4":"Category sidebar with hierarchical navigation","5":"Design settings admin page"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[4526,11758,2466,4528,15070],"plugin_category":[],"plugin_contributors":[253294],"plugin_business_model":[],"class_list":["post-298031","plugin","type-plugin","status-publish","hentry","plugin_tags-business-directory","plugin_tags-business-listings","plugin_tags-directory","plugin_tags-listings","plugin_tags-member-directory","plugin_contributors-jarradnpd","plugin_committers-jarradnpd"],"banners":{"banner":"https:\/\/ps.w.org\/vieww-directory\/assets\/banner-772x250.png?rev=3517872","banner_2x":"https:\/\/ps.w.org\/vieww-directory\/assets\/banner-1544x500.png?rev=3517872","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vieww-directory\/assets\/icon-128x128.png?rev=3517840","icon_2x":"https:\/\/ps.w.org\/vieww-directory\/assets\/icon-256x256.png?rev=3517840","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Vieww Directory is the easiest way to put a member directory on your WordPress site. Whether you run an industry association, a local business network, a tradies' directory, a club or a community marketplace, your members get a clean profile page and your visitors find them in seconds.<\/p>\n\n<p>You add a member, choose a category, drop a shortcode into a page \u2014 and that's it. No page builder, no extra plugins, no fuss.<\/p>\n\n<p><strong>What your visitors get:<\/strong><\/p>\n\n<ul>\n<li>A clean, searchable directory of every member<\/li>\n<li>Filter by category, search by name or keyword<\/li>\n<li>A profile page for each member with logo, photo gallery, contact details and a map of where to find them<\/li>\n<li>A featured-members showcase to spotlight your top supporters<\/li>\n<\/ul>\n\n<p><strong>What you get:<\/strong><\/p>\n\n<ul>\n<li>Add a member in under a minute \u2014 name, contact details, photos, done<\/li>\n<li>Hierarchical categories so you can organise members the way they actually fit<\/li>\n<li>Featured members get a gold badge and the top of the list<\/li>\n<li>Pick your own colours, fonts and spacing from a single design panel<\/li>\n<li>A grid layout that looks great on phones, tablets and desktops<\/li>\n<li>Built-in maps for member locations (or turn maps off site-wide if you'd rather not use them)<\/li>\n<\/ul>\n\n<p><strong>Shortcodes you can drop into any page or layout:<\/strong><\/p>\n\n<ul>\n<li><code>[viewwdi_directory]<\/code> \u2014 the full directory grid with search and category filters<\/li>\n<li><code>[viewwdi_layout]<\/code> \u2014 directory grid with the category sidebar in a two-column layout<\/li>\n<li><code>[viewwdi_featured]<\/code> \u2014 a row of your featured members<\/li>\n<li><code>[viewwdi_sidebar]<\/code> \u2014 just the category navigation (works in widget areas too)<\/li>\n<\/ul>\n\n<p><strong>Requirements:<\/strong><\/p>\n\n<ul>\n<li>WordPress 5.6 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to a small number of free, optional external services. Each is described below along with when it is used and what data is sent.<\/p>\n\n<h4>Google Fonts API<\/h4>\n\n<p>Used to load web fonts chosen in the Design Settings. Only occurs when a Google Font (as opposed to a system font) is selected in <strong>Directory &gt; Design &gt; Typography<\/strong>.<\/p>\n\n<ul>\n<li><strong>URL:<\/strong> https:\/\/fonts.googleapis.com<\/li>\n<li><strong>When used:<\/strong> Only when a Google Font is selected in Design Settings (off by default \u2014 system fonts are the default)<\/li>\n<li><strong>Data sent:<\/strong> The names of the selected font families (e.g. \"Inter\", \"Poppins\"). No personal data or site data is transmitted.<\/li>\n<li><strong>Privacy policy:<\/strong> https:\/\/policies.google.com\/privacy<\/li>\n<li><strong>Terms of service:<\/strong> https:\/\/developers.google.com\/terms<\/li>\n<\/ul>\n\n<p>If you prefer not to use Google Fonts, simply leave the heading and body font selectors set to a System Font \u2014 no external requests will be made.<\/p>\n\n<h4>Nominatim (OpenStreetMap) geocoding<\/h4>\n\n<p>Used to convert a member's address into latitude\/longitude coordinates so the listing can be shown on the directory map. Runs on the server when a member is saved in the WordPress admin, and in the browser when an admin clicks the \"Geocode Now\" button on a member edit screen.<\/p>\n\n<ul>\n<li><strong>URL:<\/strong> https:\/\/nominatim.openstreetmap.org\/search<\/li>\n<li><strong>When used:<\/strong> Only on the admin side \u2014 when a member is saved with a new\/changed address, or when the \"Geocode Now\" button is pressed in the Business Details meta box. No lookups run on the front-end.<\/li>\n<li><strong>Data sent:<\/strong> The member's street address, suburb, state, postcode, and the country string \"Australia\". No personal data beyond the business address.<\/li>\n<li><strong>Privacy policy:<\/strong> https:\/\/osmfoundation.org\/wiki\/Privacy_Policy<\/li>\n<li><strong>Terms of use:<\/strong> https:\/\/operations.osmfoundation.org\/policies\/nominatim\/<\/li>\n<\/ul>\n\n<p>Leaving the latitude\/longitude fields filled manually in the member edit screen prevents any Nominatim request from being sent for that member on save.<\/p>\n\n<h4>Photon (komoot.io) address autocomplete<\/h4>\n\n<p>Used to show a real-time address suggestion dropdown in the admin while typing into the Street Address field. Selecting a suggestion populates the suburb, state, postcode and coordinates at once.<\/p>\n\n<ul>\n<li><strong>URL:<\/strong> https:\/\/photon.komoot.io\/api\/<\/li>\n<li><strong>When used:<\/strong> Only on the admin side \u2014 while an editor is typing into the Street Address field of a member. Requests stop if the user stops typing or clicks elsewhere. No lookups run on the front-end.<\/li>\n<li><strong>Data sent:<\/strong> The partial address text the user is typing, plus a geographic bias toward Australia. No personal data, no site data.<\/li>\n<li><strong>Privacy policy:<\/strong> https:\/\/www.komoot.com\/privacy<\/li>\n<li><strong>Service info:<\/strong> https:\/\/photon.komoot.io\/<\/li>\n<\/ul>\n\n<p>If you prefer not to use Photon autocomplete, simply ignore the suggestions and type the address manually \u2014 no suggestions will be acted on unless you click or Enter one.<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, please use the WordPress.org support forums for this plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>vieww-directory<\/code> folder to <code>\/wp-content\/plugins\/<\/code> directory, or install through the WordPress plugins screen<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress<\/li>\n<li>Add members via <strong>Directory<\/strong> in the admin sidebar<\/li>\n<li>Manage business categories via <strong>Directory &gt; Categories<\/strong> (supports subcategories)<\/li>\n<li>Use shortcodes in your pages to display the directory<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20any%20other%20plugins%3F\"><h3>Do I need any other plugins?<\/h3><\/dt>\n<dd><p>No! The plugin is completely self-contained. It registers its own custom post type and creates native WordPress meta boxes for all member fields.<\/p><\/dd>\n<dt id=\"what%20shortcodes%20are%20available%3F\"><h3>What shortcodes are available?<\/h3><\/dt>\n<dd><p><strong>Directory Grid:<\/strong>\n    [viewwdi_directory]<\/p>\n\n<p>Displays all members in a responsive grid with search and category filtering.<\/p>\n\n<p>Attributes: <code>columns<\/code> (2 or 3, default 3), <code>limit<\/code> (number of members, default -1 for all), <code>featured<\/code> (true\/false), <code>show_search<\/code> (true\/false).<\/p>\n\n<p><strong>Category Sidebar:<\/strong>\n    [viewwdi_sidebar]<\/p>\n\n<p>Renders a hierarchical category list. Clicking a category filters the directory.<\/p>\n\n<p>Attributes: <code>title<\/code> (heading text), <code>show_counts<\/code> (true\/false), <code>show_all<\/code> (true\/false).<\/p>\n\n<p><strong>Featured Members:<\/strong>\n    [viewwdi_featured limit=\"6\" columns=\"3\"]<\/p>\n\n<p>Quick shortcode for a featured members block.<\/p>\n\n<p><strong>All-in-One Layout:<\/strong>\n    [viewwdi_layout]<\/p>\n\n<p>Renders the sidebar and directory grid in a responsive two-column layout. No page builder columns needed.<\/p>\n\n<p>Attributes: all <code>[viewwdi_directory]<\/code> attributes plus <code>show_sidebar<\/code> (true\/false), <code>sidebar_title<\/code> (heading text), <code>show_counts<\/code> (true\/false).<\/p><\/dd>\n<dt id=\"how%20do%20i%20set%20up%20a%20two-column%20directory%20page%3F\"><h3>How do I set up a two-column directory page?<\/h3><\/dt>\n<dd><p>The easiest way is to use <code>[viewwdi_layout]<\/code> \u2014 it renders the sidebar and grid side by side automatically.<\/p>\n\n<p>Alternatively, place <code>[viewwdi_sidebar]<\/code> in a 30% left column and <code>[viewwdi_directory]<\/code> in a 70% right column using your page builder or theme layout. The sidebar links update the URL and the directory reads the URL parameter to filter automatically.<\/p><\/dd>\n<dt id=\"can%20i%20customise%20the%20appearance%3F\"><h3>Can I customise the appearance?<\/h3><\/dt>\n<dd><p>Yes! Go to <strong>Directory &gt; Design<\/strong> in the WordPress admin to customise colours, typography, and spacing. Changes apply to all directory pages, cards, and profiles.<\/p><\/dd>\n<dt id=\"how%20do%20featured%20members%20work%3F\"><h3>How do featured members work?<\/h3><\/dt>\n<dd><p>Edit any member and check the \"Mark as Featured Member\" checkbox in the sidebar. Featured members appear first in the directory with a gold badge.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20subcategories%3F\"><h3>Does the plugin support subcategories?<\/h3><\/dt>\n<dd><p>Yes! Go to <strong>Directory &gt; Categories<\/strong>, add a parent category (e.g. \"Food &amp; Beverage\"), then add child categories (e.g. \"Cafes\", \"Restaurants\") with the parent set. The sidebar renders parent &gt; children with an expand\/collapse arrow.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>IMPROVEMENT: Plugin description and listing rewritten to focus on what site owners and visitors get out of the directory, rather than internal architecture.<\/li>\n<li>NEW: Plugin icon added.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>IMPROVEMENT: Single-member Location section now renders as a matching teal-headed card alongside Contact Details, instead of a flush, unstyled map below the contact panel.<\/li>\n<li>IMPROVEMENT: Member cards in the directory grid now align their \"View Profile\" button to the bottom regardless of contact-detail length, so cards in the same row sit flush.<\/li>\n<li>IMPROVEMENT: Empty-state copy across the directory archive is more conversational (\"No members match your filters\" \/ \"Browse all members\") with a heading + body + CTA layout.<\/li>\n<li>FIX: Addresses with both a unit keyword AND a slash (e.g. <code>Unit 5\/123 Main St<\/code>) no longer lose the street number during geocoding \u2014 the unit-prefix stripper now stops at the slash, so the trailing house number survives and Nominatim resolves to the actual street rather than the suburb centroid.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Fix: Business Name was not syncing to the post title\/slug in the block editor, leaving new members saved as \"No title\" with a numeric slug. The sync-to-title JavaScript was registered via wp_add_inline_script() on a hook callback that fired before the target script handle was registered, so the inline code was silently dropped. Bumped the inline-script callback priority so it runs after the main admin enqueue.<\/li>\n<li>Fix: Hardened the save_post handler's recursion guard against the edge case where an anonymous-closure callback could not be unhooked via remove_action() \u2014 now uses a static re-entrancy flag.<\/li>\n<li>Enhancement: Members saved with a numeric fallback slug (e.g. 9887) now get a proper slug generated from the Business Name on the next save.<\/li>\n<li>New: Added Directory \u2192 Settings admin page with an \"Enable maps\" toggle. When disabled, Leaflet, MarkerCluster, Nominatim geocoding, Photon address autocomplete, the map container, the admin-side map assets, and the Latitude\/Longitude meta-box fields are all suppressed. Default is enabled for backward compatibility. Existing coordinate data is preserved when maps are disabled and restored if re-enabled.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Internal release \u2014 superseded by 1.3.2.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Rebranded from Next Point Directory to Vieww Directory<\/li>\n<li>All shortcodes renamed: np_sidebar to viewwdi_sidebar, np_directory to viewwdi_directory, np_featured to viewwdi_featured<\/li>\n<li>Automatic database migration from old plugin naming<\/li>\n<li>Added Design Settings admin page for visual colour\/typography customisation<\/li>\n<li>Added featured member backfill on upgrade<\/li>\n<li>Full internationalization support<\/li>\n<li>WordPress.org coding standards compliance<\/li>\n<li>Security: proper nonce verification, input sanitisation, and output escaping throughout<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Initial release (as Next Point Directory)<\/li>\n<li>Custom post type for directory members with full business detail fields<\/li>\n<li>Hierarchical business categories with parent\/child support<\/li>\n<li>Three shortcodes: sidebar, directory grid, featured members<\/li>\n<li>Logo and photo gallery uploads<\/li>\n<li>Search and category filtering via URL parameters<\/li>\n<li>Responsive grid layout<\/li>\n<li>Featured member highlighting with gold badge<\/li>\n<\/ul>","raw_excerpt":"A simple, beautiful business directory for your WordPress site. Add member profiles with logos, photos, contact details and a map \u2014 and let visitors s &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/298031","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=298031"}],"author":[{"embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jarradnpd"}],"wp:attachment":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=298031"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=298031"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=298031"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=298031"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=298031"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=298031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}