Sondy

توضیحات

Sondy adds provider and location directory shortcodes to your WordPress site, powered by the Sondy API. Display searchable provider and location listings, detail pages, and pretty URL rewrites.

SEO built in

Every provider and location gets its own indexable URL (for example /providers/jane-doe/) with:

  • Its own title, meta description and canonical URL.
  • Open Graph and Twitter card tags using the provider or location photo.
  • Schema.org JSON-LD for the provider or location, linked to a ProfilePage / WebPage and a BreadcrumbList.
  • An entry in the XML sitemap, including the profile photo.

Works with All in One SEO, Yoast SEO and Rank Math

When All in One SEO, Yoast SEO or Rank Math is active, Sondy hands its data to that plugin instead of printing its own tags, so each page has exactly one title, description, canonical, set of social tags and schema graph. Provider and location URLs are added to the SEO plugin’s sitemap (All in One SEO page sitemap, or /pd-providers-sitemap.xml listed in the Yoast / Rank Math sitemap index) and to its breadcrumbs. Without an SEO plugin, Sondy prints the equivalent tags itself and adds a WordPress core sitemap.

Shortcodes

  • [powr_providers] – provider directory and provider profiles on one page.
  • [powr_provider_directory] / [powr_provider_detail] – provider directory and profile separately.
  • [powr_locations] – location directory and location profiles on one page.
  • [powr_location_directory] / [powr_location_detail] – location directory and profile separately.
  • [powr_provider_card slug="jane-doe-dc"] – one linked provider card, for service pages and blog posts.

External services

This plugin relies on the following third-party services.

Sondy API

All provider, location, filter and brand data is loaded from the Sondy API at the base URL you enter under Settings Sondy. Requests are made from your server (never from the visitor’s browser) whenever a directory or profile page is viewed, when a sitemap is generated, and when you click “Test connection”. Each request sends your API token and, for profile pages, the requested provider or location slug. No visitor data is sent.

  • Terms of service: TODO_SONDY_TERMS_URL
  • Privacy policy: TODO_SONDY_PRIVACY_URL

Google Fonts

The directory loads the Inter typeface from Google Fonts (fonts.googleapis.com / fonts.gstatic.com). The visitor’s browser requests the font files, which sends the visitor’s IP address and user agent to Google.

  • Terms of service: https://developers.google.com/terms
  • Privacy policy: https://policies.google.com/privacy

Google Maps

When a location has a map configured, its detail page embeds a Google Maps iframe, and “Directions” links open Google Maps. Loading the embed sends the visitor’s IP address and user agent to Google.

  • Terms of service: https://www.google.com/intl/en/help/terms_maps/
  • Privacy policy: https://policies.google.com/privacy

YouTube and Vimeo

When a provider has an introduction video from YouTube or Vimeo, the video is embedded only after the visitor clicks “Video Introduction”. The visitor’s browser then connects to that video service.

  • YouTube terms: https://www.youtube.com/t/terms – privacy: https://policies.google.com/privacy
  • Vimeo terms: https://vimeo.com/terms – privacy: https://vimeo.com/privacy

عکس‌های صفحه

نصب

  1. Upload the plugin folder to /wp-content/plugins/.
  2. Activate the plugin through the Plugins menu in WordPress.
  3. Go to Settings Sondy and enter your API base URL and token.
  4. Select the pages that host the provider and location shortcodes.

سوالات متداول

Do I need an SEO plugin?

No. Sondy outputs titles, descriptions, canonical URLs, social tags, schema and a sitemap on its own. If All in One SEO, Yoast SEO or Rank Math is active, Sondy integrates with it automatically.

How do services and conditions link to my service pages?

Under Settings Sondy Service & Condition Links, add one “Label | URL” per line (for example Non-Surgical Spinal Decompression Therapy | /spinal-decompression/). Matching items on provider profiles become links; other items stay plain text.

Where do the page titles and descriptions come from?

From the Meta Title and Meta Description set for each provider or location in Sondy. When they are empty, Sondy builds them from the name, specialty and location.

Provider pages are missing from the All in One SEO sitemap

Make sure the “Page” post type is included in All in One SEO Sitemaps, and that the page hosting the provider shortcode is published.

نقد و بررسی‌ها

نقد و بررسی‌ای برای این افزونه یافت نشد.

توسعه دهندگان و همکاران

“Sondy” نرم افزار متن باز است. افراد زیر در این افزونه مشارکت کرده‌اند.

مشارکت کنندگان

ترجمه “Sondy” به زبان شما.

علاقه‌ مند به توسعه هستید؟

کد را مرور کنید، مخزن SVN را بررسی کنید، یا از طریق RSS در گزارش توسعه مشترک شوید.

گزارش تغییرات

1.9.7

  • Schema: render-only emitter — Laravel owns schemaDocument; WordPress validates schemaContract/publishable and prints via wp_head.
  • Schema: stop reconstructing provider/location/directory JSON-LD in class-seo (title/canonical/OG only).
  • Schema: admin debug HTML comments with ?powr_schema_debug=1 (manage_options); heartbeat on enter/skip/success so silence means gate failed or wp_head never ran.
  • WebPage (never ProfilePage); directory CollectionPage+ItemList from API meta; sitemap CDN-only images.

1.9.6

  • SEO: the provider directory gets a generated title and meta description (only when the page has no custom SEO title or description), with matching share tags.
  • SEO: the provider directory is a CollectionPage whose ItemList links every profile in display order, about the practice (clinic) entity, merged into All in One SEO’s schema graph.
  • SEO: filtered or re-sorted directory URLs (?pd_specialty=…, ?pd_search=…) are noindex,follow.
  • SEO: directory card photos link to the profile, in addition to the name and “View Profile”.
  • SEO: provider profiles show a visible Home › Providers › Name breadcrumb (filter powr_dir_show_breadcrumb to turn it off).
  • SEO / AI search: content is no longer hidden by the loading overlay or while styles load when JavaScript is off, so non-JavaScript crawlers see it.
  • Privacy: gender is no longer output in schema or shown as a profile badge; it remains a directory filter.
  • Yoast SEO and Rank Math: title, description, canonical, social tags, breadcrumbs and schema go through their filters (one merged graph), and profiles are listed in /pd-providers-sitemap.xml, added to their sitemap index.
  • Internal links: profiles link to up to three other providers (same location or specialty first).
  • Internal links: new “Service & Condition Links” setting links matching services and conditions to the site’s pages.
  • New [powr_provider_card slug="…"] shortcode embeds a linked provider card.
  • Performance: provider photos have width and height to avoid layout shift.

1.9.5

  • Fix: fatal error on PHP 7.4 (PHP 8-only syntax in schema and rewrite code).
  • SEO: every provider and location URL now has its own canonical URL instead of the host page’s.
  • SEO: generated title and meta description when none is set in Sondy.
  • SEO: Open Graph and Twitter card tags with the profile photo.
  • SEO: JSON-LD is linked to a ProfilePage / WebPage and BreadcrumbList.
  • SEO: provider and location URLs are added to the XML sitemap (All in One SEO or WordPress core).
  • SEO: profile pages without a slug are marked noindex.
  • SEO / AI search: provider and location directory cards are rendered in the page HTML (not only by JavaScript), with crawlable pagination links, so search and AI crawlers can reach every profile.
  • Markup: section sub-titles are real headings (h3), the plugin no longer outputs a second element, image alt text includes credentials, the hero image loads with high priority and gallery images lazy-load. Visual styling is unchanged.
  • All in One SEO integration: title, description, canonical, social tags, breadcrumbs, schema and sitemap go through All in One SEO filters, so no tags are duplicated.
  • Uninstall now removes plugin options and cached API responses.
  • Readme: document external services.

1.9.4

  • Plugin Directory review: set Contributors to innovagroup; escape JSON-LD to prevent script-tag breakout.

1.9.3

  • Plugin Check compliance: license header, readme, escaping and naming conventions.