WP Manifestindependent plugin directory
manifest / content / aps-piano-teacher-directory-app

APS Piano Teacher Directory App

WordPress plugin designed for Alex's Piano Service LLC. The plugin adds a searchable, sortable Maine piano teacher directory through the [aps_piano_teacher_directory] shortcode.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/diskchord/aps-piano-teacher-directory-app/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Private WordPress plugin for Alex's Piano Service LLC. The plugin adds a searchable, sortable Maine piano teacher directory through the [aps_piano_teacher_directory] shortcode.

Private Repository

This repository is private and proprietary. Do not publish, redistribute, or reuse the code or directory data outside Alex's Piano Service LLC without permission.

No open-source license is granted.

Features

  • Search by teacher, town, or region.
  • Filter by ZIP, town, or region radius.
  • Show an interactive Maine map with stylized flag location markers and a visible ZIP radius circle.
  • Keep the collapsed map page-scroll-friendly on touch devices, then enable drag and pinch interaction when expanded.
  • Include travel-only service areas in search and radius filtering without adding false fixed-location map pins.
  • Sort by distance, teacher name, town, or region.
  • Render server-side teacher cards before JavaScript enhancement.
  • Output JSON-LD ItemList structured data.
  • Preserve accessibility-friendly labels, status text, and no-JavaScript fallback content.

Project Structure

aps-piano-teacher-directory-app.php  Main WordPress plugin file
README.md                           Repository documentation
README.txt                          Plain-text install notes for plugin zip users

Requirements

  • WordPress site with permission to upload and activate private plugins.
  • Modern browser support for the enhanced directory controls.
  • Network access to the external services listed below when the map or ZIP lookup is used.

Installation

  1. Create a plugin zip from this directory.
  2. In WordPress, go to Plugins > Add New > Upload Plugin.
  3. Upload the zip file and activate the plugin.
  4. Add this shortcode to the target page:
[aps_piano_teacher_directory]

Packaging

From this directory:

zip -r aps-piano-teacher-directory-app.zip aps-piano-teacher-directory-app.php README.txt README.md

The generated zip is intentionally ignored by git.

Development Notes

  • The teacher directory data is embedded in aps-piano-teacher-directory-app.php inside aps_ptd_teacher_data().
  • The September 5, 2026 verification audit documents sources, additions, corrections, and remaining follow-ups.
  • The shortcode renderer is aps_piano_teacher_directory_shortcode().
  • The plugin is intentionally self-contained: PHP, CSS, HTML, JavaScript, and structured data are all in the main plugin file.
  • Before committing PHP changes, run:
php -l aps-piano-teacher-directory-app.php

External Services

  • The map uses Leaflet loaded from unpkg and OpenStreetMap tiles.
  • ZIP lookup uses local fallbacks for common listed towns and falls back to Zippopotam.us for other US ZIP codes.
  • Town and region searches use listed location coordinates to apply the selected mileage range.
  • Distance calculations use public studio addresses when a teacher or school lists one publicly, otherwise listed town coordinates.
  • Fixed locations create map pins; non-map serviceAreas contribute only to search, region, and distance coverage.

Git Notes

  • Commit source files and documentation.
  • Do not commit generated zip files, local WordPress installs, environment files, editor state, logs, caches, or dependency directories.
  • Because this is a private plugin, review contact information and directory entries before sharing any archive outside the private repo.