Complete Guide: How To Create A Student Database

Last Updated: April 7, 2020 11 comments

If you enroll students in courses or programs – whether that’s through an educational institute, school, university, tuition, or private classes – you probably maintain a student database such as a Microsoft Access database, Microsoft Excel, or Google Sheets. It might contain basic information about your students, such as their names, contact information, and the courses they’re enrolled in.

You might consider displaying this information on your site’s front-end to make it easily accessible to students, parents, and staff members – either publicly or within a password protected private area. One way to do this is by using the Posts Table Pro plugin to create a simple student database.

Preview of student database created using Posts Table Pro and Gravity Forms

In this post, we’ll explain why you need a student database plugin and how to choose the right one for your needs. We’ll also walk you through a step-by-step tutorial on how to create a student database on your WordPress site that:

  • Displays all student profiles on a single page in a neat and organized table layout.
  • Lets users look up students using built-in search, sort, and filter options.
  • Enable admin staff to update student information directly from the front-end of your site.

Let’s get started!

Why you need a WordPress student database plugin

Every school, college, and university needs to create a database of all their students. This directory typically contains student names, student ID, email, photo, date of birth, year of graduation, and department. Creating a physical record of all your students is useful for administration purposes and so is storing that information digitally on your website.

An online student database is convenient, can’t be misplaced, and can easily be updated. For WordPress users, the best way to create one is by using a WordPress student database plugin that offers these features:

  • A simple and easy way to add individual students and list them in one place.
  • Option to add as many additional fields as you need.
  • Searching and/or filtering functionality to enable users to quickly find what they’re looking for.

Once you have a student database in place, you can use it as a data system or a student information system for better school management.

Introducing Posts Table Pro

Fortunately, finding the best WordPress student database plugin isn’t as difficult as it may seem. Our Posts Table Pro plugin is a robust solution that meets all of the requirements as mentioned above. More specifically, it lets you create a searchable and sortable student database that can be modified to fit your particular needs then displayed on the front-end of your WordPress site.

Posts Table Pro
The easy way to create a front-end student database in WordPress.

You’ll be able to include as much information as you want in your student records using a customizable shortcode, easily organize everything, and enable users to quickly find the student they’re looking for. Plus, by purchasing this plugin you’ll get expert support in case you need help getting started.

Key features on offer with Posts Table Pro:

  • Supports custom post types, fields, and taxonomies, which are perfect for creating a student custom post type with extra fields to save information about each student.
  • It offers easy-to-use search and sort features making it easy for users to find a specific student in the database.
  • Option to embed media files that you can use to display photos of students in the database on your site’s front-end.
  • It offers several customization options for modifying the look and feel of your WordPress student database in any way you like!

How to create a student database using Gravity Forms and Posts Table Pro

In this tutorial, we’ll show you how to create a functional front-end student database in WordPress. You can read it from start to finish or jump to the specific steps you need:

  1. Use Gravity Forms to create a submission form
  2. Store the student information as a custom post type in WordPress
  3. Display the student database in a table on the front-end of your website

Step #1: Use Gravity Forms to create a submission form (optional)

Note: This step is optional. If you’re happy adding students directly in the WordPress admin, then you can skip to Step 2

The first thing you need to do is use Gravity Forms to create a submission form that new students can use to upload their information.

Log in to your WordPress website and navigate to FormsNew Form from the admin panel.

Add a new student using Gravity Forms

In the Create a New Form pop-up, enter the form’s title and a brief description. Click the Create Form button to proceed.

Next, we’ll add relevant fields to the submission form depending on the type of educational institute you’re creating the student database for.

For example, if you’re creating a student database of high school students, you might consider asking for the student’s name, date of birth, locker number, class section, student attendance, school district, and teacher name. However, if you’re creating one for university students, you might instead ask for the student’s name, contact information, department, and year of graduation. And if you have a global student body, you could include information about the student’s city (New York or Toronto) and country (the United States or Canada). This should give you a window into some of the student attributes you can include in your student database.

Here are some of the most common form fields to help you get started with a step in the right direction:

  • First and last name
  • Email
  • Student ID
  • Date of birth
  • Year of graduation
  • Student photo

First name, last name, and email address

For First and Last Name, add the Name field from Advanced Fields.

Gravity Forms form builder name and email fields

Similarly, for Email, use the Email field (under Advanced Fields).

Student ID

For student ID simply add a Number Field (under Standard Fields) if you assign numeric student IDs. However, if your student IDs are alphanumeric, you’ll have to use a Single Line Text field instead. For alphanumeric student IDs, you can also choose to add an Input Mask.

Gravity Forms form builder single line text field

Date of birth and graduation year

For Date of Birth, add a Date field from Advanced Fields. Rename the field to Date of Birth and change the date format to yyyy/mm/dd.

Gravity Forms form builder date field

For the Graduation Year field, you can create Radio Buttons (under Standard Fields) instead of a date picker.

Gravity Forms form builder radio buttons field

Student photo

For Student photo, use the File Upload field (under Advanced Fields). Here’s what you need to do:

  • Change the Field Label to Student Photo.
  • Type jpeg, jpg, png in the Allowed file extensions option. This will restrict users from uploading other image formats.
  • Enter a Maximum File Size value (such as 5MB or 10MB).
Gravity Forms form builder file upload field

Once you’ve created the submission form, click the Update button to proceed. Your submission form might look something like this:

Gravity Forms submission form preview

Step #2: Store the student information as a custom post type in WordPress

In Step #1, we showed you how to create a submission form using the Gravity Forms plugin that students can use to submit their information. Once a student fills out the submission form, you’ll receive this information via email and it will also be stored in the WordPress database.

In this step, you’ll learn how to create a custom post type and store the information you collect from students directly in custom posts on your WordPress website. This way, you won’t have to manually enter the data to your site.

Note: We don’t recommend storing user-submitted data as regular WordPress posts because it will quickly clutter up your entire website. Instead, we suggest that you create a dedicated custom post type for storing student data. Since we want to create a student database from user-submitted data, we can create a ‘Students’ custom post type. This way, you’ll be able to organize student data separately from other site content.

To create a custom post type that works seamlessly with the Gravity Forms plugin, we recommend using the free Gravity Forms + Custom Post Types plugin. Here are the steps you need to follow to create a custom post type and integrate it with your Gravity Forms submission form:

  1. Install the Gravity Forms + Custom Post Types plugin to your WordPress website and activate it.
  2. If you haven’t already created a custom post type, use the free Pods plugin to do this. For complete instructions, check out this step-by-step tutorial on how to create a custom post type then come back here to continue this tutorial.
  3. Finally, you need to map your form fields to the custom post type using the instructions provided on the plugin’s page under the FAQ section (How to map a form to a custom post type).

Or if you don’t need a way to submit students from the front-end, then you don’t need to bother with Gravity Forms. Instead, just go to Students → Add New in the WordPress admin and add the students from there.

Step #3: Display the student database in a table on the front-end of your website

By now, you should have a submission form that’s linked to a custom post type on your WordPress website. In other words, whenever a student fills out the form and submits their entry, the student data should automatically be populated into your WordPress site as a custom post.

Next, you’ll learn how to display the user-submitted custom posts on your site’s front-end in a dynamic and organized table layout. We’ll use the Posts Table Pro plugin to do this.

Install Posts Table Pro to your WordPress website

If you haven’t done so already, get the Posts Table Pro plugin and install it to your WordPress website. You’ll receive the plugin files and license key in a confirmation email.

Posts Table Pro license key

Head over to SettingsPosts Table Pro from the WordPress dashboard. Enter your license key in the License Key field to activate it. Click the Save Changes button to proceed.

Set the post type option

From the same screen, you can make changes to how your student database looks and functions on the front-end.

Under the Posts selection section:

Set the Post type option to your custom post type (e.g. student) using the dropdown menu.

Posts Table Pro post type setting

This way, the Posts Table Pro plugin will know where to grab the student data from.

In addition to this, you can also modify other table settings such as table content, table loading options, sorting options, and table controls from the Settings screen.

Check out the documentation for a detailed explanation of each setting!

Create a page to display the student database

Finally, we’ll create a page where we want to display the student database. Head over to PagesAdd New from the WordPress admin panel. Give your page a suitable title, such as the student database.

Since we’re displaying data from a custom post type, we’ll need to use the custom field columns. For example, the custom field for student’s first name maps to first_name as it’s stored in the Students custom post type. So, to display the student’s first name, we’d enter cf:first_name as a column entry.

You can learn more about how to use custom fields with Posts Table Pro here!

Following our submission form, we’ll be displaying the following information in our student database:

  • Student photo
  • Student ID
  • First name
  • Last name
  • Email
  • Date of birth
  • Graduation year

Our Posts Table Pro shortcode would be: [posts_table columns="cf:photo,cf:student_id,cf:first_name,cf:last_name,cf:email,cf:date_of_birth,cf:graduation_year"]

For Gutenberg:

Posts Table Pro student database shortcode in Gutenberg

If you’re using the Gutenberg editor, click the (+) icon in the top-left corner of the screen and add a Shortcode block to the text editor. Next, enter the Posts Table Pro shortcode.

For classic editor:

Posts Table Pro student database shortcode in the classic editor

However, if you’re using the classic editor, simply enter the Posts Table Pro shortcode into the text editor.

Click the Publish button to proceed.


Your student database should look something like this:

Posts Table Pro student database

Play around with all the options in Posts Table Pro, such as adding search filters above the table.

And if you want to collect additional information from students such as their …

  • Department (Department of Education or Department of Information Technology) or
  • Majors (Small Business Sales Management or Corporate Finance)

… your table layout might look something like this:

Posts Table Pro student database with extra fields

Can students edit entries after submitting them?

Unfortunately, Gravity Forms doesn’t give users the option to let students edit entries or other information after they’ve submitted them through the submission form. However, you can make edits using Editus – a WordPress front-end editor plugin.

To achieve this, the students would have to click through to the single student profile page on your site. This is necessary because they can’t make changes to entries from within the Posts Table Pro table itself. However, they will be able to edit the content on the single post page as necessary.

Can I display Gravity Forms entries on the front-end without creating a custom post type?

The Posts Table Pro lets you display posts or custom post types in a table layout on your site’s front-end. Since form submissions are stored in a separate database field by Gravity Forms, you can’t list entries directly in a table layout using Posts Table Pro. The information needs to be stored as a post or custom post type.

This is why you’ll need to follow the instructions provided in the tutorial section above if you want to automatically store the information as a custom post type and then display these entries on the front-end in a table layout.

Can I import students in bulk?

Absolutely. You can mass-import students into the database using any WordPress import plugin such as WP All Import. This saves having to add each student individually, either via a front end form or the WordPress admin.

Create a private student database

Finally, let’s talk about how you hide your WordPress student database and make it secure. Some student directories are available to the public, and that’s fine. However, others need to be hidden from public view.

The easiest way to protect your student database is to password protect the page where you’re listing all the students. You can easily do this by setting the page to ‘Password protected’ and giving the password to your students and staff.

Password Protect Page WordPress


The Posts Table Pro plugin offers several useful features for private or public schools (elementary schools through high schools), non-profit educational institutes, colleges, and universities to create a searchable and filterable student database. By following the step-by-step instructions provided in this article, you’ll be able to create an all-in-one flexible student database (or student management system) that can easily be searched, sorted, and filtered directly from the front-end. In addition to this, you won’t have to worry about creating student accounts or giving students access to your site’s back-end.

Posts Table Pro
The easy way to create a front-end student database in WordPress.

What are some of the different fields you’re looking to display in your front-end student database? Let us know by commenting below!

Maria Ansari

From C++ to PHP, the language Maria thinks in is code, and translates it to English for humans to understand. She has a degree in Computer Science and is the writer of choice for many organizations. She is also The Big Boss at BloggInc., calling all the shots and personally supervising every word and piece of content.


  1. Kristin Lynch
    November 6, 2019 Reply

    Hi, I have a very large spreadsheet of alum that I want to add to my site and make searchable. I purchased the Posts Table Pro plugin, but now it appears that in order to get this to work, I'd have to enter the alum in one by one using a custom post type.

    Am I understanding this correctly? How would I go about doing this?

    Thank you,

    • EJ
      November 7, 2019 Reply

      Hi, Kristin.

      Posts Table Pro works by pulling your posts or custom post type data directly from your site's WordPress database and displays the values exactly or as-is in respective columns of a dynamic table that you can filter, sort, and search.

      For what you'd like to achieve and rather than have to manually enter each record as a post or custom post type, I suggest you prepare your spreadsheet so that you can import it into your site's database as either regular post or as a custom post type. Once the data is successfully imported as such, you can then easily display the same in post tables as needed. For details about how to do this, please see: Can I import data to display in Posts Table Pro?

      Before you import your spreadsheet data, you should plot which columns to assign to which data fields/types in your site's posts or a custom post type that you create. Please review the links below for info that you might need to complete the solution:

      I hope this makes sense and helps. Should you have any other questions that we may assist you with, rather than comment on one of our articles, please let us know by submitting one of our forms in our dedicated Support Center.

      Many thanks.

  2. Sabiiti Davis
    October 10, 2019 Reply

    How can I create individual passwords for each student to make this similar to a portal

    • EJ
      November 11, 2019 Reply

      Hi, Sabiiti. Posts Table Pro merely displays your site's existing posts data. To add individual password functionality, you can use one of the Membership Plugins that have been tested to work with our plugin, listed at: Which plugins are compatible with Posts Table Pro? Thanks.

  3. Nkanda Jonathan
    September 27, 2019 Reply

    Is there any cost in creating student's database?

    • EJ
      October 1, 2019 Reply

      Hi, Nkanda. That depends on what features/options you'd like to include, which you can achieve by using the plugins as mentioned/discussed in this article. If you would like to use a free plugin, you could look into using our other plugin - Posts Table with Search & Sort. Thanks.

  4. Abby Buzon
    July 8, 2019 Reply

    Question - do you have any of those table fields linked to the individual custom post? if not, how would you go about linking one of the cells to the single post? Normally the title or post ID would automatically be linked to it, but in this instance there's no post Title or ID in the table - this is the issue I'm encountering in a similar setup.

    Also, how about the email address? Is that linked with an "a href"? If so, how did you go about doing that?

    • EJ
      August 12, 2019 Reply

      Hi, Abby. Thanks for your comment and sorry for the late reply.

      You can link the table field to the individual posts via the ID, title, and image columns. For details, please refer to: Links in the posts table.

      As for the email address, you can choose to add this data in a custom field either as plain text, or enclose/wrap it in a mailto HTML tag. To allow/enable HTML tags to render in the table, you'll need to ensure you've enabled Shortcodes in the table, which you can do globally/site-wide in the plugin settings page, or in the posts table shortcode.

Please share your thoughts...

Your email address will not be published.