Designing a Continuing Education Teacher / Instructor Page That Puts Students First

User experience should drive every decision on a school’s website. When prospective students or licensed professionals land on a continuing…

Hari Swami

User experience should drive every decision on a school’s website. When prospective students or licensed professionals land on a continuing education (CE) page, their minds follow a simple sequence:

  1. Who is teaching?
  2. What are they teaching?
  3. When is the next class?

If the page doesn’t answer those three questions clearly—and in that order—people feel confused, anxious about missing the “right” class, and more likely to abandon the site. This is exactly the problem we ran into on our own CE page and what led to a complete redesign of how instructors and classes are presented.


The original problem: data structure vs. human thinking

Our first implementation was technically solid but weak from a user’s perspective. We:

  • Created a dedicated Instructor content type.
  • Attached a repeater field to store all of each instructor’s CE sessions: title, date, cost, hours, description, registration link, and so on.
  • On the main CE page, looped through all instructors and displayed every session pulled from the repeater.

It looked comprehensive—every class, every teacher, all in one place.

But there was a major issue: dates were jumbled.

Because the class dates lived inside a repeater attached to the instructor, the system couldn’t easily sort all sessions globally by date. Sessions for different instructors were interleaved in odd ways. Even within a single instructor, editing and adding rows over time sometimes shifted the internal order.

From a student’s point of view, it felt like this:

  • “I see a lot of information, but I can’t quickly tell what’s coming next.”
  • “Is this April class sooner than that May class from another instructor?”
  • “Where do I even start?”

The page answered “what” before clearly answering “who” and “when,” which clashed with how people naturally scan CE offerings.


Stepping back: designing for “Who → What → When”

After living with this for a while, it became clear that technical convenience had won over user experience. The solution wasn’t just a new query or plugin—it required rethinking the whole flow.

The guiding principle became:

Students first want to connect with the instructor (who), then understand the class (what), and only then compare dates (when).

That meant reorganizing the site around people, not just data fields.

1. The CE overview page becomes an instructor directory

Instead of dumping every class directly onto the CE page, we turned the main CE page into a clean instructor directory. Each instructor card now shows:

  • Name and credentials
  • Short, trust‑building bio snippet
  • A hint at the types of CE classes they offer
  • A clear “View upcoming classes” or “Learn more” button

This instantly answers the “who” question and invites visitors to click into the instructor they resonate with. It also gives room to link to deeper storytelling—blog posts under an “Instructor” category can share each teacher’s background, philosophy, or impact on students.

Crucially, this structure is scalable: the same pattern can showcase school instructors, guest teachers, and even teacher assistants, all within a consistent “people first” layout.

2. Instructor pages become dedicated CE schedules

Once a user chooses an instructor, their single page needs to do one thing exceptionally well: present that instructor’s upcoming CE classes in clear date order.

Each instructor page now includes:

  • Full bio and credentials
  • A section titled something like “Upcoming Continuing Education Classes”
  • A repeating layout for each CE session with:
    • Class title
    • Cost and CE hours
    • Date and time
    • Location
    • Short, benefits‑oriented description
    • A prominent “Register” button

This is where the repeater field still shines: it keeps all the instructor’s sessions stored in one place, easy to manage. But the front end now focuses on one instructor at a time, which matches user expectations and removes cross‑instructor sorting headaches.


The technical fix: sorting repeater rows by date

To fully respect “when,” the sessions still needed to appear in chronological order for each instructor. Because the dates were stored inside the repeater, a custom sort was needed.

The solution was a small piece of code that:

  • Hooks into the instructor’s CE Sessions repeater when it’s loaded.
  • Sorts all rows by the CE Date subfield (even though the date is stored and displayed in a human‑friendly format like “April 9, 2026”).
  • Returns the sorted rows to the page template.

Here is the exact snippet used, with a clear comment so you can reuse it for your own team pages or class schedules:

php/**
 * Sort ACF repeater 'ce_sessions' rows by 'ce_date' for Instructor CE schedules.
 */
add_filter( 'acf/load_value/name=ce_sessions', function( $value, $post_id, $field ) {
    if ( ! is_array( $value ) ) {
        return $value;
    }

    usort( $value, function( $a, $b ) {
        $a_date = isset( $a['ce_date'] ) ? $a['ce_date'] : '';
        $b_date = isset( $b['ce_date'] ) ? $b['ce_date'] : '';

        // Same or empty dates: keep relative position / send empties last
        if ( $a_date === $b_date ) return 0;
        if ( $a_date === '' ) return 1;
        if ( $b_date === '' ) return -1;

        // Convert to timestamps so human-friendly formats still sort correctly
        $time_a = strtotime( $a_date );
        $time_b = strtotime( $b_date );

        if ( $time_a == $time_b ) return 0;
        return ( $time_a < $time_b ) ? -1 : 1; // ASC: earliest first
    } );

    return $value;
}, 10, 3 );

Because this runs at load time, you can:

  • Keep the date field returning a friendly format for display.
  • Maintain data entry through the admin interface as usual.
  • Know that every instructor page will always list classes from soonest to latest.

The same pattern works for:

  • Team pages where each member has upcoming events, clinics, or office hours.
  • Teacher listings where each teacher has repeating workshops throughout the year.
  • Coaches or mentors with recurring programs and cohorts.

Any time you have “one person → many dated items,” this approach provides a clean, maintainable structure.


Why this pattern scales for schools and teams

After the redesign, the continuing education area is no longer just a list of classes. It’s a people‑centered experience:

  • The CE overview page highlights the instructors as the primary asset.
  • Each instructor page offers a clear, date‑sorted calendar of what they’re teaching next.
  • The same Instructor content type and field group can represent:
    • Lead teachers
    • Visiting faculty
    • Teaching assistants
    • Even administrative staff, if you later want to showcase your whole school team

For other organizations—yoga studios, training centers, coaching groups, clinics—the same logic applies. When you design your site around “who, what, when” in that order, and back it with a data structure that supports proper sorting, you make it easy for visitors to trust you, find the right session, and register with confidence.

In the end, the biggest shift wasn’t a plugin or a code snippet. It was a mindset change:

Start with the human story (the instructor), explain the value (the class), then make logistics (the date) effortless.

Everything else—the repeater fields, the sorting code, the layout—is just the implementation of that simple, student‑first idea.