MULT-205

Content Management Systems

Credits: 3 Hours: 45 Semester: 4 Prerequisites: DSGN-103 (concurrent), MULT-128 (concurrent) Methods: Lab, Theory

You can build websites from scratch โ€” that's what Web Development taught you. But there's a reason over 40% of the entire internet runs on WordPress: sometimes you don't need to build from scratch. You need to build fast, manage content without touching code, and let clients or collaborators update things themselves.

Content Management Systems let you focus on content, design, and strategy instead of wiring up HTML every time you want to publish a blog post. In this course, you'll set up a WordPress site from zero, customize it to match your brand, build a real content-driven site, and learn enough about custom themes and plugins to make WordPress do exactly what you want.

1
What Is a CMS & Why Use One
โ–ถ

A Content Management System separates content from presentation. You write your blog post in an editor. The CMS handles turning it into a web page, applying your design, creating navigation, generating RSS feeds, handling SEO metadata โ€” all the stuff you'd otherwise have to code manually.

CMS vs. Hand-Coded Sites

When should you use a CMS instead of building from scratch?

  • Use a CMS when: The site is content-heavy (blogs, magazines, portfolios with lots of pieces), multiple people need to update it, the client isn't technical, or you need to publish frequently
  • Build from scratch when: The site is a custom web application (not just content), you need maximum performance control, or the project is a simple landing page that won't change often

For most creator businesses, a CMS is the right choice. You want to spend your time creating content, not fighting HTML.

The CMS Landscape

  • WordPress โ€” The dominant player. Open source, self-hosted or WordPress.com hosted. Massive ecosystem of themes and plugins. Powers everything from personal blogs to Fortune 500 sites. This is what we'll focus on.
  • Ghost โ€” Modern, fast, focused on publishing. Great for newsletters and membership sites. Less flexible than WordPress, but cleaner for pure content.
  • Squarespace / Wix โ€” Hosted, drag-and-drop builders. Easy but limited. You're renting their platform, not owning your infrastructure.
  • Headless CMS (Strapi, Contentful, Sanity) โ€” Content backend only โ€” no front-end. You build the front-end yourself (often in React). Best for developers who want CMS content management with custom front-ends.

Why WordPress Specifically?

WordPress is not the newest or trendiest option. But it's the one you're most likely to encounter professionally, and it's the one with the deepest ecosystem:

  • 43%+ of all websites use WordPress
  • 59,000+ free plugins in the official directory
  • Thousands of free and premium themes
  • Massive freelance market for WordPress developers ($50-150/hr)
  • You can do almost anything with it โ€” blog, e-commerce, membership site, portfolio, forum
WordPress isn't perfect. It can be bloated, it needs security updates, and it has a learning curve. But it's the industry standard, and knowing it is a career skill.

๐Ÿ’ก Key Takeaway

A CMS isn't a crutch โ€” it's a power tool. The best creators use the right tool for the job: hand-coded for custom applications, CMS for content-driven sites. Knowing both makes you versatile.

๐Ÿ”จ Exercise 4.1: CMS Comparison Research

Before diving into WordPress, understand the landscape:

  1. Visit WordPress.org, Ghost, and Squarespace
  2. For each, note: pricing, ease of setup, customization level, and target audience
  3. Find 3 creator websites built on WordPress (check the page source or use WhatCMS.org)
  4. Write a 1-paragraph explanation of why WordPress is the right choice (or isn't) for your creator business

Deliverable: A comparison table of the three CMS platforms and your recommendation for your own use case.

2
WordPress Setup & Theme Customization
โ–ถ

Let's get a WordPress site running. You have two paths: local development (on your computer) or hosted (on a server). We'll do both โ€” local first for learning, then deploy to the web.

Local WordPress Setup

The easiest way to run WordPress locally is with Local by Flywheel (now just called "Local"). It's free and handles all the server configuration for you:

  1. Download and install Local from localwp.com
  2. Click "Create a new site" โ€” give it a name
  3. Choose "Preferred" for the environment settings
  4. Set your WordPress admin username and password
  5. Click "Add Site" โ€” Local sets up PHP, MySQL, and WordPress automatically
  6. Click "Open Site" to see your new WordPress site, or "WP Admin" to access the dashboard

If you prefer the command line: docker-compose with the official WordPress image works great. But Local is faster for learning.

The WordPress Dashboard

The WordPress admin panel (wp-admin) is where you manage everything:

  • Posts โ€” Blog entries. Chronological, categorized, tagged.
  • Pages โ€” Static content (About, Contact, Services). Not time-based.
  • Media โ€” Your image/file library. Everything you upload lives here.
  • Appearance โ†’ Themes โ€” Control your site's look. One click to change the entire design.
  • Appearance โ†’ Customize โ€” The real-time theme customizer. Change colors, fonts, layouts, and see the result live.
  • Plugins โ€” Add functionality. SEO, contact forms, e-commerce, security โ€” there's a plugin for everything.
  • Settings โ€” Site title, tagline, URL structure (permalinks), reading options.

Choosing & Customizing a Theme

Your theme controls 90% of how your site looks. Choosing the right one matters:

  • Free themes: Start with Astra, GeneratePress, or Kadence. They're lightweight, fast, and highly customizable. Available from Appearance โ†’ Themes โ†’ Add New.
  • Block themes: WordPress's Full Site Editing (FSE) uses block-based themes. These give you drag-and-drop control over every part of the site. Twenty Twenty-Four (the default theme) is a good block theme to learn with.
  • Premium themes: When free isn't enough. Divi, Avada, and Flavor are popular premium options with visual builders.

Customize your theme through Appearance โ†’ Customize:

  • Site Identity โ€” Logo, site title, favicon
  • Colors โ€” Match your brand palette from DSGN-103
  • Typography โ€” Font families, sizes, weights
  • Menus โ€” Navigation structure
  • Homepage Settings โ€” Static page vs. latest posts

Essential First Plugins

Install these right away on any new WordPress site:

  • Yoast SEO (or Rank Math) โ€” SEO optimization for every page and post
  • WPForms Lite โ€” Contact forms without code
  • UpdraftPlus โ€” Automated backups. Non-negotiable.
  • Wordfence โ€” Security. WordPress is a common attack target.
  • WP Super Cache (or LiteSpeed Cache) โ€” Speed optimization

๐Ÿ’ก Key Takeaway

WordPress setup is fast โ€” you can have a site running in 10 minutes. The real skill is in theme customization and plugin selection. Choose a lightweight theme, install only the plugins you need, and customize deliberately.

๐Ÿ”จ Exercise 4.2: Set Up and Customize a WordPress Site

Build your first WordPress site:

  1. Install WordPress locally using Local by Flywheel (or Docker)
  2. Install and activate a free theme (Astra, GeneratePress, or Kadence)
  3. Customize the theme to match your brand: upload a logo, set your brand colors, choose appropriate fonts
  4. Create a custom navigation menu with at least 4 items
  5. Install Yoast SEO and configure the basic settings
  6. Set a static homepage (not the default "latest posts" view)

Deliverable: Screenshots of your customized WordPress dashboard and live site homepage. Include a brief write-up of which theme you chose and why.

3
Creating Content-Driven Sites
โ–ถ

A WordPress site with a default theme and no content is worthless. The value is in what you put in it and how you organize it. In this module, you'll build a real content-driven site โ€” a blog, portfolio, or storefront โ€” with thoughtful structure and actual content.

Content Strategy for WordPress

Before you start creating pages, plan your site structure:

  • Sitemap โ€” What pages does your site need? For a creator portfolio: Home, About, Portfolio/Work, Blog, Contact. For a storefront: Home, Shop, About, FAQ, Contact.
  • Navigation hierarchy โ€” What goes in the main menu vs. footer? Don't put everything in the top nav.
  • Content types โ€” Posts for time-based content (blog entries, updates). Pages for permanent content (About, Services). Custom post types for specific collections (portfolio pieces, products).
  • Categories and tags โ€” Organize your posts. Categories are broad buckets (Tutorials, Reviews, Behind the Scenes). Tags are specific labels (audio, beginner, WordPress).

The Block Editor (Gutenberg)

WordPress uses a block-based editor. Everything is a block:

  • Paragraph, Heading, List โ€” Basic text blocks
  • Image, Gallery, Video, Audio โ€” Media blocks. Drag and drop or select from Media Library.
  • Columns โ€” Create multi-column layouts without CSS
  • Group โ€” Wrap blocks together for shared styling (background color, padding)
  • Cover โ€” Full-width image/video with text overlay. Great for hero sections.
  • Buttons โ€” Call-to-action buttons with customizable colors and links
  • Spacer โ€” Add vertical space between blocks

The block editor is powerful once you learn it, but it's not a replacement for understanding design. Apply the layout and typography principles from DSGN-103. Use consistent spacing, limit your font choices, and maintain visual hierarchy.

Building a Blog

A blog drives organic traffic. Here's how to set it up properly:

  1. Create a static "Home" page and a "Blog" page (Settings โ†’ Reading โ†’ set both)
  2. Define 3-5 categories that map to your content pillars
  3. Write at least 3 posts (500+ words each) to populate the blog before launch
  4. Configure Yoast SEO for each post: focus keyword, meta description, readability score
  5. Add featured images to every post โ€” this is what shows in social shares and blog listings

Building a Portfolio

For showcasing creative work:

  • Use a portfolio plugin (like Visual Portfolio or Jesuspended Portfolio) or a theme with built-in portfolio support
  • Each portfolio piece gets its own page with: featured image, project description, tools used, link to live project
  • Create a gallery page that shows all pieces in a filterable grid
  • Include context โ€” don't just show the work, explain the process and results

Building a Storefront

WooCommerce turns WordPress into a full e-commerce platform:

  • Install WooCommerce and run the setup wizard
  • Add digital products (audio files, scripts, templates, courses)
  • Configure payment gateways (Stripe, PayPal)
  • Set up product categories and a shop page
  • For digital products specifically: enable digital downloads and disable shipping

๐Ÿ”จ Exercise 4.3: Build a 5-Page Content Site

Create a complete content-driven WordPress site with at least 5 pages:

  1. Choose your site type: blog, portfolio, or storefront
  2. Create these pages: Home, About, a content page (Blog/Portfolio/Shop), a supporting page (FAQ/Services/Resources), and Contact
  3. Write real content for every page โ€” no placeholder "Lorem ipsum" text
  4. If blog: write and publish at least 3 posts with categories, tags, and featured images
  5. If portfolio: create at least 5 portfolio pieces with images and descriptions
  6. If storefront: add at least 5 products with prices, descriptions, and images
  7. Optimize every page for SEO with Yoast: focus keyword, meta description, proper headings

Deliverable: Your complete WordPress site (running locally or deployed). Include screenshots of all 5 pages and your Yoast SEO scores.

4
Custom Themes & Plugins Basics
โ–ถ

Off-the-shelf themes get you 80% of the way there. But when you need that last 20% โ€” a specific layout, a custom feature, a unique design element โ€” you need to understand how themes and plugins work under the hood.

You're not becoming a full WordPress developer in this module. But you'll learn enough to make targeted customizations without breaking things.

Child Themes: Safe Customization

Never edit a theme directly. When the theme updates, your changes get overwritten. Instead, create a child theme:

/* style.css โ€” in your child theme folder */
/*
Theme Name: My Creator Theme Child
Template: astra
*/

/* Your custom CSS goes here */
.site-header {
  background: linear-gradient(135deg, #7c3aed, #db2777);
}

.entry-title {
  font-family: 'Georgia', serif;
  font-size: 2.5rem;
}

The child theme folder goes in wp-content/themes/. It needs just two files to start: style.css (with the header above) and functions.php (to enqueue the parent theme's styles):

<?php
// functions.php โ€” child theme
function my_child_theme_enqueue() {
    wp_enqueue_style('parent-style',
        get_template_directory_uri() . '/style.css');
}
add_action('wp_enqueue_scripts', 'my_child_theme_enqueue');

Template Hierarchy

WordPress uses a template hierarchy to decide which PHP file renders each page. Understanding this lets you customize specific page types:

  • front-page.php โ€” Your homepage (if set to static)
  • single.php โ€” Individual blog post
  • page.php โ€” Static page
  • archive.php โ€” Category/tag/date archive
  • search.php โ€” Search results
  • 404.php โ€” Page not found
  • header.php / footer.php โ€” Site-wide header and footer

To customize a specific template, copy it from the parent theme to your child theme and edit the copy. WordPress automatically uses the child theme's version.

The WordPress Loop

The Loop is how WordPress displays posts. Every theme template uses it:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

  <article>
    <h2><?php the_title(); ?></h2>
    <div class="meta">
      Posted on <?php the_date(); ?> by <?php the_author(); ?>
    </div>
    <div class="content">
      <?php the_content(); ?>
    </div>
  </article>

<?php endwhile; else : ?>
  <p>No posts found.</p>
<?php endif; ?>

Functions like the_title(), the_content(), the_date(), and the_author() are WordPress template tags. They pull data from the database and output it. You don't need to write SQL queries โ€” WordPress handles data access through these functions.

Plugin Basics

A WordPress plugin is just a PHP file with a specific comment header:

<?php
/*
Plugin Name: My Custom Features
Description: Custom functionality for my creator site
Version: 1.0
Author: Your Name
*/

// Add a custom shortcode
function creator_cta_shortcode($atts) {
    $atts = shortcode_atts(array(
        'text' => 'Check out my work!',
        'url'  => '/portfolio',
    ), $atts);
    
    return '<a href="' . esc_url($atts['url']) . '" 
        class="creator-cta">' . esc_html($atts['text']) . '</a>';
}
add_shortcode('cta', 'creator_cta_shortcode');

// Usage in any post or page: [cta text="View Portfolio" url="/portfolio"]

Plugins go in wp-content/plugins/. Activate them from the dashboard. Even this basic understanding lets you add custom shortcodes, modify default behavior with hooks (actions and filters), and build small features without installing bloated plugins.

Mobile Optimization

Google indexes mobile-first. Your WordPress site must work perfectly on phones:

  • Test with Chrome DevTools device emulation (F12 โ†’ Toggle Device Toolbar)
  • Check touch targets โ€” buttons need to be at least 44ร—44px
  • Test your navigation โ€” does the mobile menu work? Can users find what they need?
  • Run PageSpeed Insights โ€” aim for 90+ on mobile
  • Optimize images โ€” install Smush or ShortPixel for automatic compression

๐Ÿ’ก Course Complete

You can now set up, customize, and extend WordPress sites. You understand themes, plugins, the template hierarchy, and the Loop. Combined with your hand-coded web development skills from earlier courses, you have two powerful approaches to building web presences โ€” custom code for applications, WordPress for content-driven sites. Next up: EMRG-208 Emerging Creator Technologies, where you'll explore the cutting edge of the creator economy.

๐Ÿ”จ Exercise 4.4: Theme Customization & Mobile Optimization (Course Deliverable)

Take the site you built in Exercise 4.3 and level it up:

  1. Create a child theme for your chosen theme
  2. Add at least 5 custom CSS rules that improve the design (custom header, typography, button styles, color tweaks, spacing)
  3. Create a custom shortcode using a small plugin (a CTA button, a styled quote box, or a custom info block)
  4. Use the shortcode in at least 2 pages or posts
  5. Run PageSpeed Insights and optimize until you score 80+ on mobile
  6. Test on at least 3 screen sizes (phone, tablet, desktop) and screenshot each

Deliverable: Your customized WordPress site with child theme, custom plugin, PageSpeed Insights score, and responsive screenshots for 3 screen sizes.

Next Course โ†’
EMRG-208: Emerging Creator Technologies
โ†’