WP Manifestindependent plugin directory
manifest / social / insight-levinger-ig-reviews

Insight - Levinger - IG Reviews

Instagram-style video reviews feed for Dr. Levinger (filterable RTL grid + immersive lightbox). Shortcode: [levinger_ig_reviews].

by Insight Marketing · github.com/udiinsight/insight-levinger-ig-reviews · website

★ 0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/udiinsight/insight-levinger-ig-reviews/archive/refs/heads/main.zip

Levinger IG Reviews

Instagram-style video reviews feed for Dr. Levinger.

Description

Renders a filterable, RTL grid of video testimonials from the existing _reviews custom post type, with an immersive (Reels-style) lightbox. The plugin is read-only over existing data: it queries reviews that have a video plus a doctor and procedure relation, and does not modify the existing /reviews/ page or any existing field.

Shortcode: [levinger_ig_reviews]

Attributes:

  • columns — grid columns on desktop (default 4; clamped 2–6)
  • limit — max reviews (default -1 = all)
  • procedure — scope the feed to one procedure (see below)
  • doctor — scope the feed to one doctor (see below)
  • accent — teal | navy | dark | purple | #hex (default teal)
  • cta_url — consultation link shown on the lightbox CTA
  • cta_text — CTA label (default: קבעו תור ייעוץ)

The feed shows a review when its reviewsvideo field is set and it has a doctor and procedure relation. Optional fields used when present: review_transcript (lightbox live-captions + SEO), review_duration (card duration pill), ig_permalink (share).

Scoping the feed to a procedure or doctor

procedure and doctor filter the query itself — only matching reviews are fetched — and the matching filter control is hidden, so a scoped feed cannot be filtered away from the page it sits on. Each accepts, in order:

  • current — the post being viewed. Drop [levinger_ig_reviews procedure="current"] into a single-procedure template and it needs no other configuration.
  • a post ID — e.g. procedure="8099"
  • a slug — e.g. procedure="laser-glasses-removal"
  • an ig_tag — e.g. procedure="ניתוח_קטרקט_מסורתי", useful because Hebrew slugs are percent-encoded and impractical to type

Polylang translations share a slug, so a slug lookup prefers the Hebrew post. Scoping to something that matches nothing shows the empty state rather than the whole feed.

Changelog

0.6.2

  • Dropped Frank Ruhl Libre from the enqueued Google Fonts request. Headings use Assistant, the family the feed already used for body text, differentiated by weight.

0.6.1

  • The Instagram caption is shown under the video, clamped to two lines with an "עוד" / "פחות" expander, the way Instagram presents it. It was stored in post_content all along but never sent to the front end.
  • Hashtags are stripped from the displayed caption: the marker is internal and the doctor/procedure tags already appear as chips above it. Windows line endings are normalised so the clamp counts real lines.

0.5.1

  • review_duration is filled automatically on ingest. Instagram sends no duration, but media_handle_sideload() has already run getID3 over the file, so the running time is read from the attachment metadata. A duration posted explicitly still wins.

0.5.0

  • Removed the decorative like / save / share buttons from the lightbox. They toggled a CSS class and nothing else — no storage, no server call — and reset on every video change, so they promised an action the site never performed.
  • The procedure chip now links to that procedure's page and the doctor chip (avatar and name) to the doctor's page. An <a> with no href is left inert when a post has no URL.

0.4.0

  • Filter bar redesigned: procedure filters and the doctor selector are one family of text pills with per-filter counts, replacing the icon circles with clamped labels. A results line under the bar updates live as filters change. Pills scroll as one row on mobile.
  • Ingested reviews get "⚠ למלא…" placeholders for name and quote instead of caption fragments, so an unfinished draft cannot be published by accident.

0.3.0

  • procedure/doctor now filter the query server-side instead of hiding cards in JS, accept current/ID/slug/ig_tag, and hide the filter control they scope by.

0.2.0

  • Auto-fill ig_tag on newly published doctors and procedures, with a uniqueness guard.

0.1.0

  • Initial build: light feed, circular procedure filters, doctor dropdown, immersive lightbox.