How we built the DentPlus demo site — service pages for implants and whitening, doctor profiles, appointment booking, before/after gallery, and dental-specific schema markup.
The DentPlus Theme Origin Story
DentPlus started as a custom project for a dental clinic in Ankara. The dentist wanted three things: patients should find them on Google Maps when searching "dis klinigi yakinimda" (dental clinic near me), the website should show before/after photos of real cases, and patients should be able to book appointments without calling. Every feature in DentPlus was built to solve a real need from that first client.
After delivering the site, we realized every dental clinic needs exactly the same features. So we turned it into a reusable JekCMS theme. Here is how to set it up.
Service Pages
Dental clinics offer 8-12 core services. Each service gets its own page with detailed description, procedure steps, pricing range, and FAQ. We use the JekCMS services table with a custom template that renders each service as a full page:
// services/[slug].php template
$service = $db->fetch(
"SELECT * FROM services WHERE slug = ? AND status = 'active'",
[$slug]
);
// Service-specific structured data
$schema = [
'@type' => 'MedicalProcedure',
'name' => $service['title'],
'description' => strip_tags($service['description']),
'howPerformed' => $service['procedure_steps'] ?? '',
'preparation' => $service['preparation'] ?? '',
];
Services include: Dental Implants, Teeth Whitening, Orthodontics, Root Canal, Dental Crowns, Veneers, Pediatric Dentistry, Emergency Care. Each has a unique icon (SVG), hero image, and detailed content that the clinic can edit from the admin panel.
Doctor Profiles
Doctor profiles use the team table with extra fields for credentials, specializations, and education. Each doctor has a dedicated page showing their photo, bio, qualifications, and available appointment slots:
// team table extended fields
ALTER TABLE team ADD COLUMN credentials VARCHAR(255); -- e.g., "DDS, PhD"
ALTER TABLE team ADD COLUMN specialization VARCHAR(255);
ALTER TABLE team ADD COLUMN education TEXT;
ALTER TABLE team ADD COLUMN languages VARCHAR(255); -- "Turkish, English, German"
The doctor profile page includes a Physician schema markup that helps Google display doctor information in search results.
Appointment Booking
The appointment form extends the contact form with date/time selection, service selection, and doctor preference. The form uses vanilla JavaScript for the date picker (no jQuery dependency):
// Custom date picker - no external libraries
const picker = document.querySelector('.date-picker');
const today = new Date();
const maxDate = new Date(today.getTime() + 30 * 24 * 60 * 60 * 1000);
// Disable weekends and past dates
function isAvailable(date) {
const day = date.getDay();
return day !== 0 && date >= today && date <= maxDate;
}
Time slots are generated based on the clinic's working hours (configurable in admin settings). Booked slots are checked against existing appointments to prevent double-booking.
Before/After Gallery
The before/after gallery is the most conversion-driving feature. We use a slider component that lets visitors drag to compare the before and after images of actual treatments. The gallery uses the standard JekCMS gallery table with a before_image and after_image field pair.
Patient consent is handled outside the CMS — the clinic is responsible for getting written permission before uploading photos. We added a notice in the admin panel reminding them of this obligation.
Local SEO: Dental Schema
For dental clinics, structured data is critical for appearing in local search results. We implement three schema types:
- Dentist: The main organization schema with name, address, phone, opening hours, insurance accepted
- MedicalProcedure: For each service page (implants, whitening, etc.)
- Physician: For each doctor profile
After deploying the schema, our first DentPlus client saw a 280% increase in Google Maps impressions within 3 weeks. The knowledge panel started showing their opening hours, phone number, and patient reviews directly in search results.
Results
The DentPlus theme has been deployed to 4 dental clinics so far. Average results after 60 days: PageSpeed Mobile 89, Google Maps impressions up 200-300%, online appointment bookings 30-50 per month (from zero), phone calls from Google decreased 40% (patients prefer online booking).