Skip to content
    UW Crest
    CALS WordPress Hosting

    University of Wisconsin Madison

    • Support Docs
      • Requesting a Site
      • Planning Your Site
      • Creating Accessible Content
      • Changelog
      • 2015 Theme Docs
    • Contact Us
      • Web Support
      • New Website Request
    • Login
    • CALS Main
    UNIVERSITY of WISCONSIN-MADISON UW-MADISON
    • Login
    • CALS Main

    Dark Mode On

    Your device is set to dark mode so this site is matching that preference. You can click the moon icon to change your site experience.

    • Getting Started
      • Requesting a Site
      • Planning Your Site
      • Setting up Your Site
      • Adding Content to Your Site
      • Creating Accessible Content
      • Web Hosting Guidelines
    • Tutorials
      • Basic Tutorials
        • Theme Customization Options
        • Logging In
        • Adding/Removing Users
        • Editing Your Site Menu
        • Google Analytics
        • Jump Links
      • Advanced Tutorials
        • Improving Site SEO
        • Using Animation
        • E-Commerce & Shopping Cart Options
        • Embed a Google Calendar
      • CALSv4 Migration
        • Getting Started
        • Migrating Content
    • Blocks
      • CALS Blocks
        • Accordion
        • Tabs
        • Card
        • Carousel
        • Modal
        • Posts
        • UW Today Events
      • Core WordPress Blocks
    • Plugins
      • Plugin Guidelines
      • CALS Custom Post Types
      • Resource Directory Block
      • CALS People Directory
      • Protect Pages With NetID
      • Redirection Plugin
      • Broken Link Checker
    • 2015 Theme Docs
    Plugins

    CALS Custom Post Types

    Custom posts types allow you to organize your content beyond the WordPress defaults (posts and pages). This plugin provides an interface for registering your own post types.

      What is a custom post type/taxonomy?

      Think of Custom Post Types as distinct “buckets” for different kinds of content; instead of cramming everything into a standard Page or Post, you create a dedicated space for specific items (see examples below). Taxonomies are the labeling systems used to organize those buckets. This structure allows you to go beyond a simple list and create a searchable database. For instance, allowing a student to instantly filter a “Courses” post type by a “Semester” taxonomy to see exactly what’s available this fall.

      Use cases

      There are many use cases for this plugin, and it is designed to be very flexible. If you don’t see your use case, please still feel free to reach out and we’ll let you know if we thing this plugin is a good fit for you.

      Post TypeExample TaxonomiesExample(s)
      ProjectsFunding Source, Research Area, Funding YearDairy Innovation Hub Project Showcase
      PoliciesType, OfficeCALS Admin Policies/Guidelines
      Majors/CertificatesType, Interest Area
      CoursesSemester, Level (Undergrad/Grad), Degrees
      Learning ResourcesType, Category, Tag

      ✅ When to use

      • You have a large number of items that you’d like to be searchable/filterable, and they don’t fit into the default page or post post types.

      🛑 When to use something else

      • You only need to display a few items on your site. If you only have a few resources or documents you need displayed (i.e. less than 10), consider just making a page and linking to the documents from that page.
      • You need post types for events or people. Use the CALS People or CALS Events plugin instead.

      How to use

      Once the plugin is activated on your site, you’ll have the ability to register up to two* post types for your site. Each post type has settings available to customize it to your site.

      *To prevent misuse, site administrators are only able to register two post types and taxonomies. If you need additional post types or taxonomies for your site, please contact us and we can configure those for you.

      Add a post type (administrators only)

      1. Navigate to your admin dashboard, and go to Settings > Custom Post Types and select Add a Post Type.
      2. Fill out the basic fields. For this example, we are going to create a post type called Projects
        • Key project
          The identifier for the post type. Should be singular (not plural). Make sure you are intentional with this key, it should not be changed in a production environment.
        • Rewrite URL projects
          The URL path that will be used to display posts and post archives (if enabled): example.wisc.edu/{rewrite url}/{post permalink}.
        • Plural Label Projects
          A user-friendly, plural label for the post type.
        • Singular Label Project
          A user-friendly, singular label for the post type.
        • Icon images-alt2
          Choose which icon is displayed in the sidebar. See the Dashicons documentation for a complete list.
      3. Navigate between the tabs and add any additional customization you’d like. Some plugins, like NetID protection and the Resource Directory Block add additional settings to the plugin.
      4. Add a template, if desired. This is an advanced, but powerful tool that allows you to create a starting pattern for new pages created.
      5. Click Create the post type. The post type will be registered.
      6. At this point, you’ll be able to add custom taxonomies.

      Add a custom taxonomy (administrators only)

      1. Navigate to the settings page for the post type you’d like to add the taxonomy to by going to Settings > Custom Post Types > [Post Type] > Settings (gear icon) or [Post Type] > Settings.
      2. Open the Taxonomies tab and click Add a Taxonomy.
      3. Fill out the required fields. For this example, we are going to create a taxonomy called Research Area.
        • Key research-area
          The identifier for the post type. Should be singular (not plural). Make sure you are intentional with this key, it should not be changed in a production environment.
        • Rewrite URL research-areas
          The URL path that will be used to display the taxonomy archive page. example.wisc.edu/{rewrite url}.
        • Plural Label Research Areas
          A user-friendly, plural label for the post type.
        • Singular Label Research Area
          A user-friendly, singular label for the post type.
        • Hierarchical true
          Whether or not terms are able to have parents and be organized in a hierarchy. For example, post categories are hierarchical, while post tags are not.
      4. Click Create Taxonomy.

      Displaying a list of items

      Items can be displayed on your site using the Resource Directory or Query Loop blocks. Both blocks offer advanced filters, allowing you to automatically or manually select exactly who is displayed.

      Resource DirectoryQuery Loop
      Display a list of items and (optionally) link to each item’s page✓✓
      Sort by title, date, menu order, etc.✓✓
      Filter by assigned taxonomy terms✓✓
      Select individual items to display✓✓
      Full control over layout and design using the block editor✓
      Allow visitors to easily search, sort, and/or filter the items displayed✓

      Resource Directory Block (requires separate plugin)

      The resource directory block allows you to list items on your site dynamically, allowing visitors to search, sort, and/or filter right on the page. Each item has a fixed layout with some customization options, but it is more limited compared to the customizability of the Query Loop block.

      Query Loop Block

      The query loop block allows you to display a list of people on your page. It can automatically update who is displayed based on pre-defined filters in the editor (e.g. all projects with the “Sustainability” research area), but does not allow users on the front-end to search and filter. However, it allows you to completely customize the post template for each item using the block editor.

      Interested in using this plugin on your site?

      Please contact us and we’ll help you get it activated and set up.

      Contact Us

      All Support Docs
      CALS PluginCustom Post TypeDirectoryResourcesWordPress
      ©2026 Board of Regents of the University of Wisconsin System
      Privacy Notice | Non-Discrimination Statement
      Feedback, questions or accessibility issues: websupport@cals.wisc.edu
      Login Request Help Help Docs