TrailKit Documentation
Complete reference for the TrailKit WordPress plugin — Routes, POIs, Guides, Shortcodes, and Pro features.
🚀Getting Started
Requirements
| Requirement | Minimum | Notes |
|---|---|---|
| WordPress | 6.0+ | Tested up to 6.7 |
| PHP | 7.4+ | PHP 8.x recommended |
| Browser | Any modern browser | Leaflet requires internet for map tiles |
| Plugins | None required | Works without ACF, Elementor or any page builder |
Installation
- Go to Plugins → Add New → Upload Plugin
- Upload
trailkit.zipand click Install Now - Click Activate
- Go to Routes → Settings to configure URL slugs and map defaults
- Go to Settings → Permalinks and click Save
Demo Data
TrailKit includes sample routes, POIs, and a guide to help you explore. Go to Routes → Settings → Demo Data and click Install Demo Data. Remove it with one click before going live.
Quick Navigation
🗺Routes
Routes represent hiking trails, trekking expeditions, kayak circuits, or any multi-point outdoor activity with measurable stats.
Meta Fields
| Field | Meta key | Type | Description |
|---|---|---|---|
| Difficulty | _tk_difficulty | select | easy | moderate | hard | extreme |
| Distance (km) | _tk_distance | number | Total distance in kilometres |
| Elevation gain (m) | _tk_elevation | number | Total elevation gain in metres |
| Estimated time | _tk_time | text | e.g. "3-4 hours", "5-6 days" |
| Latitude | _tk_lat | text | GPS latitude of the starting point |
| Longitude | _tk_lng | text | GPS longitude of the starting point |
| GPS Points | _tk_points | JSON | Array of waypoints for the polyline |
| Conditions alert | _tk_conditions_alert | text | Warning shown in an orange box on the route page |
| Hero position | _tk_hero_position | text | CSS background-position e.g. "center 30%" |
| Google Maps link | _tk_gmaps_url | url | Direct link to Google Maps |
| Gallery | _tk_gallery | JSON | Array of WP attachment IDs |
GPS Points format
Paste a JSON array in the GPS & Map meta box:
[
{"lat": 10.4806, "lng": -66.9036, "ele": 900},
{"lat": 10.4900, "lng": -66.9100, "ele": 950}
]Difficulty colours
📍Points of Interest
POIs represent specific natural or cultural landmarks: waterfalls, viewpoints, beaches, caves, lagoons, peaks.
Meta Fields
| Field | Meta key | Description |
|---|---|---|
| Latitude | _tk_lat | GPS latitude of the POI |
| Longitude | _tk_lng | GPS longitude of the POI |
| Conditions alert | _tk_conditions_alert | Optional warning shown on the POI page |
| Hero position | _tk_hero_position | CSS background-position for the hero image |
| Google Maps link | _tk_gmaps_url | Direct link to Google Maps location |
| Gallery | _tk_gallery | JSON array of attachment IDs (max 3 in Lite) |
Default POI types
Created automatically on activation. Add custom types in POIs → POI Types.
viewpointwaterfallbeachvillagecavelagoonpeakriverruins👤Guides
Guide profiles showcase local certified guides with contact info, specialties, pricing, and service area map.
Contact & Details
| Field | Meta key | Description |
|---|---|---|
_tk_whatsapp | Phone with country code e.g. +58 414 555 0001 | |
_tk_email | Contact email address | |
| Instagram handle | _tk_instagram | Username without the @ symbol |
| Price from (USD/d) | _tk_price_from | Minimum daily rate in USD |
| Featured | _tk_is_featured | Shown first in directory with ★ badge |
| Profile photo | _tk_photo_id | WordPress attachment ID |
Service Area
| Field | Meta key | Description |
|---|---|---|
| Latitude | _tk_lat | Center of the guide's service area |
| Longitude | _tk_lng | Center of the guide's service area |
| Radius (km) | _tk_radius_km | Service radius — shown as a circle on the guides map |
Specialties
hikingclimbingmountaineeringcyclingmountain-bikingkayakingdivingrappellingcampingphotographygastronomyculture4x4motorcycling[ ]Shortcodes
Place these shortcodes in any page, post, or widget. Assets (CSS/JS) are loaded automatically only on pages that use a TrailKit shortcode.
🎨Template Overrides
TrailKit uses a WooCommerce-style override system. Copy any template to your theme and edit it freely — plugin updates will never overwrite your changes.
How it works
wp-content/
themes/
your-theme/
trailkit/ ← create this folder
single-route.php ← your override
route-card.php ← another overrideAvailable templates
| Template | Used for |
|---|---|
single-route.php | Individual route page — hero, stats bar, map, gallery |
single-poi.php | Individual POI page |
single-guide.php | Individual guide profile page |
route-card.php | Route card shown in [tk_routes] grid |
poi-card.php | POI card shown in [tk_pois] grid |
guide-card.php | Guide card shown in [tk_guides] grid |
Available PHP variables
// In single-route.php / route-card.php
$post_id // Current route post ID
$data // Array: difficulty, distance, elevation, time,
// lat, lng, points, conditions_alert,
// gmaps_url, gallery, hero_position
$thumb // URL of the featured image (full size)
// In single-guide.php / guide-card.php
$post_id // Current guide post ID
$guide // Array: whatsapp, email, instagram, price_from,
// specialties (JSON), photo_id,
// is_featured, lat, lng, radius_km
// Check Pro status in any template
if ( tk_is_pro() ) {
// Show Pro-only feature
}✏️CSS & Styling
All TrailKit styles are scoped to .tk-* class names — zero conflicts with your theme. Customise via CSS custom properties.
Brand tokens (global)
| Variable | Default | Use |
|---|---|---|
--tk-primary | #0df246 | Accent colour (green) |
--tk-primary-dim | rgba(13,242,70,.12) | Transparent accent for backgrounds |
--tk-easy | #22c55e | Easy difficulty badge |
--tk-moderate | #f59e0b | Moderate difficulty badge |
--tk-hard | #ef4444 | Hard difficulty badge |
--tk-extreme | #7c3aed | Extreme difficulty badge |
Surface tokens (inherit from theme.json)
| Variable | Inherits from | Default |
|---|---|---|
--tk-bg | --wp--preset--color--base | #ffffff |
--tk-bg-card | --wp--preset--color--base-2 | #f8fafc |
--tk-text | --wp--preset--color--contrast | #0f172a |
--tk-text-muted | --wp--preset--color--contrast-2 | #64748b |
--tk-font | --wp--preset--font-family--body | inherit |
@media (prefers-color-scheme: dark). When the visitor's device is in dark mode, surface tokens switch automatically.Override in your theme
/* In Appearance → Customize → Additional CSS */
/* Change brand accent */
:root {
--tk-primary: #ff6b00;
--tk-primary-dim: rgba(255,107,0,.12);
}
/* Override card surfaces */
.tk-card, .tk-single, .tk-grid {
--tk-bg-card: #fafafa;
--tk-border: #d1d5db;
}🔑License & Pro
Lite vs Pro
| Feature | Lite | Pro |
|---|---|---|
| Published routes | 3 | Unlimited |
| Published POIs | 3 | Unlimited |
| Published guides | 1 | Unlimited |
| Gallery images per post | 3 | Unlimited |
| Gallery lightbox slider | ✗ | ✓ |
| GPS polyline on map | ✓ (stored) | ✓ (rendered) |
| Elevation profile chart | ✗ | ✓ Soon |
| GPX import | ✗ | ✓ Soon |
License plans
| Plan | Sites | Price |
|---|---|---|
| Single Site | 1 domain | $79 / year |
| Agency | Up to 2 domains | $149.99 / year |
| Unlimited | Unlimited domains | $199.99 / year |
| Lifetime | 1 domain | $199 one-time |
Activating a license
- Go to Routes → Settings → Pro License
- Paste your key (format:
TK-XXXX-XXXX-XXXX-XXXX) - Click Activate License
Free Trial
Try all Pro features free for 14 days — no credit card required. Go to Routes → Settings and enter your email in the Start 14-Day Trial section. One trial per domain.
Ready to upgrade?
Start with a free trial or get a Pro license now.
❓FAQ & Troubleshooting
Didn't find your answer?
Email admin@trailplugin.com →