WordPress Core, Themes, Plugins and Content

Wordpress Manual WordPress Fundamentals Toggle WordPress Fundamentals section What Is WordPress? WordPress.org vs WordPress.com What Can You Build with WordPress? How WordPress Works WordPress Core, Themes, Plugins and Content Essential WordPress Terminology How to Plan a WordPress Website Domains, Hosting, DNS and HTTPS Explained How to Choose WordPress Hosting Development, Staging and Production Environments How…

5 min read

  • Article
  • Beginner
  • 5 minutes read
  • Reviewed August 3, 2026

A maintainable WordPress website separates four major concerns: core software, presentation, functionality and content.

In practice, these concerns are represented by WordPress core, themes, plugins and the website’s stored content. They interact closely, but they should not be treated as interchangeable.

WordPress Core Provides the Platform

WordPress core is the central software distributed by the WordPress project.

Core provides the systems that allow WordPress to operate, including:

  • Installation and configuration.
  • Database access.
  • Content creation and storage.
  • Users, roles and capabilities.
  • Media management.
  • Comments.
  • Themes and templates.
  • Plugin loading.
  • Updates.
  • APIs.
  • Administration screens.

Core should normally be updated through the official update process rather than edited directly.

Editing core files creates serious maintenance problems because updates can overwrite changes. It also makes security review and troubleshooting more difficult.

When WordPress needs custom behavior, use an appropriate plugin, theme feature, child theme or integration rather than modifying core.

Themes Control Presentation

A WordPress theme controls how content is presented to visitors.

Depending on the theme type, it may define:

  • Templates and template parts.
  • Layouts.
  • Typography and colors.
  • Spacing and visual styles.
  • Navigation presentation.
  • Block styles and patterns.
  • Responsive behavior.
  • Frontend scripts and assets.

Classic themes primarily use PHP template files, CSS and JavaScript. Block themes use block templates, template parts, Global Styles and theme.json, while still being able to include PHP and other assets.

A theme can also include functionality, but permanent website features should be evaluated carefully before being tied to the active theme.

Plugins Extend Functionality

Plugins add or change WordPress behavior.

A plugin may:

  • Register custom post types and taxonomies.
  • Add custom fields.
  • Create forms.
  • Provide ecommerce functionality.
  • Integrate an external service.
  • Add security or performance features.
  • Introduce blocks or administration screens.
  • Change the publishing workflow.
  • Expose or consume API data.

Plugins can range from a single small file to a complete application.

A plugin should ideally own functionality that must remain available when the website’s visual theme changes.

For example, an event registration system should not disappear because the website adopts a new design.

Content Is the Information the Website Manages

Content includes the information created and maintained through WordPress.

Examples include:

  • Pages and posts.
  • Custom post type records.
  • Categories, tags and taxonomy terms.
  • Custom field values.
  • Media records and files.
  • Comments.
  • Navigation structures.
  • Reusable patterns.
  • User-generated information.

Content should be modeled so that it remains useful independently of a particular layout.

If a service description exists only as text placed inside a complex visual layout, it may be difficult to reuse in another template, API, search result or future redesign.

Structured content separates meaning from presentation.

Why the Separation Matters

Clear responsibility improves:

  • Theme switching.
  • Redesigns.
  • Data portability.
  • Testing.
  • Security review.
  • Performance diagnosis.
  • Team collaboration.
  • Long-term maintenance.

When responsibilities are mixed, changes become risky.

Examples of poor separation include:

  • Editing WordPress core to add a feature.
  • Storing essential business data in a theme-specific format.
  • Using page-builder layouts as the only source of structured information.
  • Adding large amounts of unrelated functionality to a child theme.
  • Requiring a design theme to remain active so critical records are accessible.

A Practical Example

Imagine a website that publishes a directory of events.

The responsibilities could be divided as follows:

WordPress Core

Provides publishing, users, media, queries, permissions, APIs and general administration.

Plugin or Custom Functionality

Registers an Event content type, event fields, venue relationships, date handling and registration integration.

Theme

Defines how event archives, individual events and related content are presented.

Content

Stores each event’s title, description, dates, venue, image and classification.

If the website changes theme, the events should continue to exist because their data and registration logic are not owned by the old design.

What Belongs in a Theme?

A theme should primarily contain presentation concerns:

  • Layout and visual design.
  • Templates.
  • Template parts.
  • Theme styles.
  • Design patterns.
  • Presentation-oriented block variations.

Some functionality can reasonably be theme-specific, particularly when it has no meaning outside the design. However, anything that represents durable business data or essential operations usually belongs elsewhere.

What Belongs in a Plugin?

A plugin is generally a better home for:

  • Custom content models.
  • Integrations.
  • Forms and workflows.
  • Business rules.
  • Data processing.
  • Custom permissions.
  • Features that should survive a redesign.

Small website-specific functionality can live in a custom site plugin rather than being added to a general-purpose commercial plugin or the theme’s functions.php file.

What About the Block Editor?

Blocks can be provided by core, themes or plugins.

Core blocks are part of WordPress. Themes can style blocks, define patterns and provide design-oriented variations. Plugins can add blocks with new functionality or data behavior.

The fact that something appears inside the editor does not determine which layer should own it. Ownership should follow responsibility.

Theme and Plugin Data Can Create Lock-In

A theme or plugin may store content in proprietary shortcodes, block formats or custom database structures.

This is not automatically wrong, but you should understand what happens if the product is deactivated or replaced.

Before adopting a major tool, ask:

  • Does the underlying content remain accessible?
  • Can data be exported?
  • Are standard WordPress structures used?
  • What appears on the frontend after deactivation?
  • Can another tool read or migrate the data?
  • Is the vendor actively maintaining the product?

A Useful Responsibility Test

Ask the following question:

Should this feature or data remain when the website changes its visual design?

If the answer is yes, it probably should not depend entirely on the theme.

Also ask:

Is this behavior fundamental to WordPress itself, or specific to this project?

Project-specific behavior should not require editing WordPress core.

Frequently Asked Questions

Is functions.php a plugin?

No. It is a theme file loaded with the active theme. Code placed there normally stops running when the theme changes.

Can a theme register custom post types?

Technically yes, but it can create content portability problems. A plugin or site-specific plugin is usually a better owner for content types that should survive a theme change.

Can plugins change the design?

Yes. Plugins can output markup, styles, scripts and blocks. The distinction is about primary responsibility, not an absolute technical boundary.

Should I edit WordPress core files?

No for normal customization. Core updates can overwrite changes, and direct edits make maintenance and security more difficult.

Continue Learning

Previous: How WordPress Works

Next: Essential WordPress Terminology