X
🐾 Coming from PetMatchPro 6.x? Version 8 adds real adoption analytics, similar-animal suggestions, SEO-friendly URLs, and overlay badges. See What's New →
PetMatchPro
  • Partners
    • AnimalsFirst
    • PetPoint
    • RescueGroups
  • What’s New
  • Shop
  • Demo
  • FAQ
  • Knowledge Base
  • About Us
  • Contact Us
  • My Account
  • Cart
Select Page
Green rocket icon for Getting Started documentation category

Getting Started

6
  • Activate Your License
  • Setup Wizard Walkthrough
  • Connecting Your Shelter System
  • Understanding License Tiers
  • Creating Your First Search Page
  • Creating Your First Detail Page
Blue code brackets icon for Shortcodes and Configuration documentation category

Shortcodes & Configuration

12
  • Shortcode Builder
  • [pmp-search] Reference
  • [pmp-details] Reference
  • [pmp-detail] Reference
  • [pmp-option] Reference
  • Parameters by License Tier
  • Common Shortcode Recipes
  • Pagination Setup
  • Excluding Values
  • Search Filter Button
  • Detail Button Hover Text
  • Search Card Hover Text
Purple palette icon for Templates and Design documentation category

Templates & Design

9
  • Search Templates Gallery
  • Detail Templates Gallery
  • Poster Templates
  • Theme Template Overrides
  • Color Customization
  • Font Size Customization
  • Detail Title Formats
  • Dynamic Banners
  • Bulk Poster Print
Orange image with star icon for Icons and Overlays documentation category

Icons & Overlays

6
  • Understanding Pet Icons
  • Understanding Overlays
  • Icon Reference Gallery
  • Customizing Icon Display
  • Value-Based Icons
  • Icon Size Customization
Teal tag icon for Labels and Customization documentation category

Labels & Customization

3
  • Custom Labels Guide
  • Changing Labels via Filtering
  • Custom Currency & Date Formats
Blue funnel icon for Filters and Search documentation category

Filters & Search

6
  • Custom Filter Groups & Labels
  • Setting Up Search Filters
  • Species & Breed Filtering
  • Filter Value Management
  • Excluding Values via Filtering
  • Partner-Specific Filter Options
Violet chain link icon for Partner Integration Guides documentation category

Partner Guides

3
  • AnimalsFirst Integration Guide
  • PetPoint Integration Guide
  • RescueGroups Integration Guide
Red bar chart icon for Analytics and Tracking documentation category

Analytics & Tracking

8
  • Understanding PMP Analytics
  • GA4 Configuration
  • Google Tag Manager Setup
  • Leveraging Analytics
  • WP-Cron Requirements for PetMatchPro Analytics
  • Queue Health and Tools
  • Privacy and Data Retention
  • Off-Bootstrap Impression Ingest
Lightbulb icon representing PetMatchPro best practices guides for homepage layouts, button strategy, performance tuning, and template selection

Best Practices

11
  • Featuring Animals on Your Homepage
  • Adding Animals to Sidebars and Other Pages
  • Using Banners and Subtitles Effectively
  • Overlays and Icons for Quick Visual Cues
  • Writing Effective Detail Page Instructions
  • Button Configuration for Conversion
  • Optimizing Performance with API Caching
  • Customizing Typography and Icon Sizes
  • Lost and Found Search Best Practices
  • Template Selection Guide
  • Preconnect to Your Partner Photo CDN – PetMatchPro
Amber wrench icon for Troubleshooting and FAQ documentation category

Troubleshooting

15
  • Common Error Messages
  • API Connection Issues
  • Template Not Found Errors
  • Theme Template Override Not Loading
  • Performance & Caching Best Practices
  • Animals Not Displaying
  • Stale Content / Cache Issues
  • Styling Conflicts
  • Empty Field Display
  • Analytics Queue Stuck or WP-Cron Not Running
  • Premium Feature Not Appearing After Upgrade
  • Troubleshoot the PetMatchPro Shortcode Builder
  • Reading PMP Debug Logs
  • wp-config.php Configuration Constants
  • How to Contact Support
View Categories
  • Home
  • Knowledge Base
  • Templates & Design
  • Dynamic Banners

Dynamic Banners

13 min read

Dynamic Banners #

Dynamic Banners let you drive the banner text on search-result cards – and an optional per-value color – from animal fields instead of a single static message. Instead of every card showing the same banner, you map the values of one or more source fields to display labels, so each card shows the banner that matches that animal’s data.

The classic example: an animal that is on hold should shout On Hold in red, while every other animal invites visitors with a friendly green Adopt Me. With Dynamic Banners you configure that once and PetMatchPro applies the correct banner to each card automatically.

New in 8.18.0: banners are now driven by an ordered cascade of priority levels. Each level has its own source field and its own value rows, and the levels are checked in order until one matches. That lets you layer rules – for example, On Hold first, then Special Needs, then Senior, and finally a default Adopt Me – so the most important status always wins. See Priority Levels below.

A PetMatchPro search-results grid of three adoptable dog cards (Slate, Sorrel, Teddy), each showing the identical static 'Adopt Me' banner in amber across the top. A static banner displays the same text and color on every card regardless of the animal's status.
The same PetMatchPro search-results grid of three dog cards, now with dynamic banners that change per animal: a yellow 'NOT AVAILABLE' banner on the on-hold dog (Slate) and green 'READY TO ADOPT' banners on the available dogs (Sorrel, Teddy). Dynamic banners drive each card's banner text and color from an animal field instead of one fixed message.

Requires Junior license. Both the admin toggle and the dynamic_banner shortcode override are Junior-gated.

New in 8.20.0: dynamic banners can now appear on single-animal detail pages as a full-width strip above the main photo, controlled by an independent per-method toggle. Detail banners reuse the exact same levels, default, and per-value colors as your search cards, so one configuration drives both surfaces. See Detail Pages below.

Enabling Dynamic Banners #

Dynamic Banners are configured under PetMatchPro Options > Banners – a dedicated admin tab. Settings are per method type (adopt, lost, found, list, preferred – depending on which methods your partner supports), so you can run a different banner scheme for adoptable animals than for lost or found reports.

  1. Go to the PetMatchPro Options > Banners tab.
  2. Choose the method type you want to configure (for example, adopt).
  3. Turn on Show on search results for that method type (and/or Show on detail pages – see Detail Pages).
  4. Click Add Level to create a priority level (your first level is Level 1).
  5. Pick a Source Field for that level (see below).
  6. Add one or more Value → Label rows to the level with the Add Value button.
  7. Add more levels as needed and order them with the up/down controls – the top level has the highest priority.
  8. Optionally set the single Default / Fallback label for animals that match no level.
  9. Click Save.

Detail Pages #

New in 8.20.0. Dynamic banners can also appear on the single-animal detail page, rendered as a full-width strip directly above the main photo (it is a strip, not an overlay drawn over the image). The detail strip reuses the same configuration as your search cards – the same priority levels, the same source fields, the same Default / Fallback row, and the same per-value colors. There is nothing separate to map: whatever an animal shows on its search card is what it shows on its detail page.

The one thing you control separately is where banners appear. The Banners tab has two independent checkboxes per method type:

  • Show on search results – draws the banner on search-result cards (this is the original toggle, renamed).
  • Show on detail pages – draws the banner as the strip above the photo on the detail page.

The two toggles are fully independent – neither implies the other. You can show banners on cards but not detail pages, on detail pages but not cards, or on both. Show on detail pages is off by default, so existing sites see no change on detail pages until you turn it on.

You can also override the detail strip per shortcode with the dynamic_banner parameter on [pmp-details]: dynamic_banner="on" forces the strip on for that page (still requires Junior+ and a configured level or default), and dynamic_banner="off" suppresses it even when the toggle is on.

New in 8.23.24: the static banner= parameter now works on [pmp-details] as well, and takes priority there exactly as it does on search cards. [pmp-details banner="Foster-to-Adopt pet"] shows that copy as the strip, with no per-value color class and regardless of the Show on detail pages toggle. Before 8.23.24 the parameter was accepted on [pmp-search] only, so identical copy appeared on the result card and silently vanished on the detail page. A companion banner_size parameter (small, large, xl) scales the detail strip text and applies to both static and dynamic banners.

Everything else behaves exactly as it does on search cards: the same Junior+ requirement, the same first-match-wins cascade, and the same empty-default rule (a blank Default / Fallback label renders no strip). Because the colors are shared, a value shown red on a card is shown red on the detail strip.

Fixed in 8.23.25: your source field no longer has to be a field the detail page displays. Before 8.23.25 the detail page could only read fields it was already rendering, so a banner built on a source field the page did not show – memolist being the common case – matched on search cards and never on the detail page. It fell through to the Default / Fallback row instead, which looks like “the banner disappeared”. If you worked around this by adding the source field to your details list purely to make banners work, you can take it back out.

Aligned photo tops on search grids #

Also new in 8.20.0: when a search grid contains at least one banner, the cards without a banner reserve the banner’s height above their photo, so every photo top lines up in a clean row. A grid where no animal resolves a banner reserves nothing, so grids that never had banners look exactly as before. This keeps mixed grids – for example, a blank default with an On Hold banner on only some animals – from showing ragged, uneven photo tops. It is automatic and needs no configuration.

Priority Levels (Cascade) #

Each method type is configured as an ordered list of priority levels. A level is a self-contained rule: it has its own Source Field and its own set of Value → Label rows. PetMatchPro walks the levels from top to bottom and the first level that matches wins.

The key behavior is fall-through: if a level’s source field has a value but that value matches none of the level’s rows, evaluation continues to the next level – it does not jump straight to the default. Only when every level has been checked with no match does the single Default / Fallback row apply.

A worked three-level example for adoptable animals:

Priority Source field Value → Label Color
Level 1 onhold Yes → On Hold Red
Level 2 special_needs Yes → Special Needs Blue
Level 3 age_group Senior → Senior Amber
Default – Adopt Me Green

With this configuration, an animal that is on hold shows On Hold even if it is also a senior, because Level 1 wins. A senior animal that is not on hold and has no special needs falls through Levels 1 and 2 and shows Senior. An animal that matches none of the three levels shows Adopt Me.

Ordering, adding, and removing levels #

  • Add Level appends a new, empty level. Add Value adds a row within a level.
  • The up/down controls on each level and each row change priority – no retyping required. Saving stores the levels in the exact order shown.
  • Remove Level and the row remove control delete that level or row. Empty rows and empty levels are dropped automatically when you save.

Recommended maximums: up to 10 levels per method type and 25 values per level. These are soft guidelines, not hard limits – the admin shows an advisory note if you exceed them but never blocks saving. They exist to keep the configuration and the generated CSS manageable.

Three-level dynamic banner cascade for adoptable animals An animal is checked against Level 1 (onhold equals Yes, shows a red On Hold banner), then Level 2 (special_needs equals Yes, shows a blue Special Needs banner), then Level 3 (age_group equals Senior, shows an amber Senior banner). The first matching level wins; a non-matching level falls through to the next. An animal that matches no level shows the green Adopt Me default. Adoptable animal Level 1: onhold = Yes? match On Hold no match Level 2: special_needs = Yes? match Special Needs no match Level 3: age_group = Senior? match Senior no match No level matched default Adopt Me
The cascade in action for the worked example: each animal is tested against the levels top to bottom. The first level to match supplies the banner (an on-hold senior still shows On Hold, because Level 1 wins). A level whose value matches nothing falls through to the next level, and an animal that matches no level lands on the green Adopt Me default.

Choosing a Source Field #

The Source Field is the animal field whose value decides whether a level matches. Each level picks its own source field. The available source fields depend on your integration partner:

Partner Source field(s)
PetPoint onhold (also stage / stageid and other status-icon fields)
AnimalsFirst status
RescueGroups animalstatus

For the On Hold / Adopt Me example, the PetPoint onhold field is the source: when it reads Yes the animal is on hold, otherwise it is available.

Building Value to Label Rows #

Each row maps one source-field value to the banner label that should display when an animal has that value. Rows are repeatable – add as many as you need.

For the worked example, with onhold as the source field you would add a single row:

Value Label
Yes On Hold

Animals whose onhold value is Yes get the On Hold banner. Everything else falls through to the default / fallback row (see below), which you would set to Adopt Me.

PetMatchPro Options Banners tab, Adopt method expanded and enabled, with 'Use a cascading banner for this method type' checked. Two priority levels are configured. Level 1 source field Onhold maps the value Yes to the banner label NOT AVAILABLE with a yellow background, black text, and black border. Level 2 source field Specialneeds maps the value Yes to the banner label SPECIAL NEEDS with an orange background and white text. Below the levels, Add Level is available, and a single Default / Fallback row shows the label READY TO ADOPT with a green background and white text. Each value row has up, down, and remove controls; each level has Remove Level, and Add Value adds rows.

Per-Value Colors #

Each Value → Label row has optional background, text, and border color fields. Use them to give a value its own look – a red On Hold banner and a green Adopt Me banner, for instance.

  • Leave a color field blank to inherit the default. A blank color falls back to the banner colors configured on the Colors tab. The Colors tab is now the default banner look.
  • Fill a color field to override. A per-value color wins over the Colors-tab default by CSS specificity – no !important is used. The banner color CSS is container-scoped, with a per-value class of .pmp-banner-val-{slug}. As of 8.18.0 the slug is namespaced by method type and level (for example adopt-l0-on-hold), so the same value used on two different levels can carry two distinct colors without colliding. These class names are internal and regenerate automatically on save.

A single dynamic-banner level (Level 1) with Source Field set to Onhold. One value row maps the Field Value Yes to the Banner Label NOT VAILABLE, while the Background, Text Color, Border, and Text Shadow fields are all left blank, showing the 'inherit' placeholder. Blank color fields inherit the banner colors configured on the Colors tab. The row has up, down, and remove controls, with an Add Value button below and Remove Level at top right.

Because per-value overrides win by specificity rather than !important, you can still layer your own theme CSS on top using a more specific selector. See Styling Conflicts if a theme rule is fighting your banner colors.

Default / Fallback Row #

The Default / Fallback row sets the banner label (and optional colors) for any animal whose source-field value does not match a configured Value → Label row. In the worked example this is where you put Adopt Me in green.

One important rule:

  • An empty default label renders no banner at all for unmatched values. PetMatchPro does not draw an empty box – the card simply has no banner. Use this when you only want a banner on specific values (for example, show On Hold only on held animals and nothing on the rest).

How Matching Works #

Matching is straightforward and predictable:

  • Within a level: exact match, case-insensitive. The animal’s source-field value is compared to each row’s value ignoring letter case. There is no “contains”, multi-value, or regular-expression matching. The first row whose value matches is used.
  • Across levels: the first level that produces a match wins. A level whose field has a value that matches none of its rows falls through to the next level rather than stopping at the default.
  • No match falls back to the default. Only after every level is checked with no match is the single Default / Fallback label used – and if that label is empty, no banner renders.
Dynamic banner matching algorithm across N levels For each level in order, PetMatchPro asks whether the animal’s value matches a row in that level. If yes, it renders that level’s banner and stops. If no, it advances to the next level. After all levels are exhausted, if a Default or Fallback label is set it renders the default banner; otherwise no banner is rendered. Animal enters a search card Level k: does the animal’s value match a row in this level? yes Render this level’s banner, then stop no Another level after k? yes advance to next level (k+1) no Default / Fallback label set? yes Render Default / Fallback banner no No banner rendered
The general matching algorithm for any number of levels. Each level is evaluated in order: a match renders that level’s banner and stops the walk; a non-match advances to the next level. Only after every level is exhausted does the single Default / Fallback row apply — and if its label is blank, the card shows no banner at all.

Troubleshooting #

A banner shows on search cards but not on the detail page. Fixed in 8.23.25 – upgrade. Before that release this happened whenever the source field was not also displayed on the detail page.

Cards show a blank strip where a banner should be. Check the Default / Fallback row. If it has a Background color but its Text Color is left on inherit, the label inherits the stylesheet’s white and renders white text on your background – most visibly white-on-white if the background is also white. The banner is rendering; you just cannot read it. Either give the Default row a Text Color, or clear its Banner Label so no fallback strip renders at all.

Some animals match and others do not, and you cannot see why. Matching is exact and case-insensitive against the Field Value column, so punctuation counts: Foster-to-Adopt Banner and Foster to Adopt Banner are different values. Copy the value out of your shelter system rather than retyping it. As of 8.23.25 a source field that returns a list (again, memolist) matches on any entry in that list, not only the first, so an animal carrying several memos resolves correctly.

License Requirements #

Dynamic Banners require a Junior license or higher. On the Basic tier the Banners admin section and the dynamic_banner shortcode override are not available. Junior and Preferred sites get the full feature.

The static banner= shortcode parameter still takes priority over dynamic banners for back-compatibility: if a shortcode sets banner="...", that static text is shown on every card and no per-value color class is applied. Dynamic banners only kick in when no static banner= is present. As of 8.23.24 this precedence is identical on [pmp-details], so the two surfaces can no longer disagree about which banner wins.

Next Steps #

  • Color Customization – Set the default banner look that per-value colors inherit from
  • Using Banners and Subtitles Effectively – Best practices for banner messaging
  • [pmp-search] Reference – The dynamic_banner shortcode override
  • Styling Conflicts – Resolve theme CSS that overrides banner colors
Dynamic Banners ultima modifica: 2026-06-20T10:20:40-04:00 da PetMatchPro
Updated on July 28, 2026

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
Detail Title FormatsBulk Poster Print

Submit a Comment Cancel reply

Your email address will not be published. Required fields are marked *

Table of Contents
  • Dynamic Banners
    • Enabling Dynamic Banners
    • Detail Pages
      • Aligned photo tops on search grids
    • Priority Levels (Cascade)
      • Ordering, adding, and removing levels
    • Choosing a Source Field
    • Building Value to Label Rows
    • Per-Value Colors
    • Default / Fallback Row
    • How Matching Works
    • Troubleshooting
    • License Requirements
    • Next Steps

© Copyright 2018-2026 by PetMatchPro, All Rights Reserved

  • Privacy Policy
  • Terms of Use
  • Disclaimer
  • Login