Having a good understanding of how WordPress and IssueM work together will help you get the best from your site.
In this post we’ll take a high-level look at the components that make up a basic WordPress site and what IssueM brings to the table.
WordPress is a database-driven application written in the PHP language and consists of the core, plugins and themes.
The core is WordPress’s engine. It contains all the functionality required to assemble and deliver your website’s pages, handle the administration of your site (including content creation) and supports basic membership functions such as logging in and managing a profile.
Plugins are used to add new functionality to the engine. The variety of plugins is extraordinary and covers virtually every scenario you can think of, from form handling to subscribing visitors to a MailChimp newsletter to providing a complete e-commerce solution.
To display your content, though, you need a theme. A theme consists of a number of templates that handle the transformation of the raw content into the HTML that arrives in your browser. Themes can, and often do, extend the core by including functionality in a functions.php (you will often see ‘add this to your theme’s functions.php’ in hints and tips).
WordPress also supports child themes which enable themes to be customised without the need to alter the original theme’s code.
The WordPress Content Model
The core, plugins and themes are generally all in the business of creating, manipulating and formatting data. WordPress organises its data in a specific way, known as a content model.
The WordPress content model consists of content types, taxonomies and users. There’s also secondary data such as menus and many plugins add their own data but we don’t really need to worry about that.
WordPress ships with two content types: posts and pages. The major differences between posts and pages are that:
- pages have a much longer lifespan (they are not time-sensitive),
- pages can be directly related to each other (parent – child relationships)
- pages can have unique templates (posts will generally all use the same template)
- posts can be part of a taxonomy whereas pages cannot
Essentially, pages are for static content such as about us, whereas posts are for short-lived content such as news.
Taxonomies are used to group posts. WordPress ships with category, which is a hierarchical taxonomy as a category can be a child of another category, and tag which is not hierarchical as a tag cannot have a parent or child. Each individual category or tag is known as a term.
Shortcodes and Widgets
These two components are designed for embedding generated content in another piece of content, such as a post or page.
A shortcode is primarily used in the post / page edit screen and takes the form of:
When WordPress is retrieving the content, it will replace the shortcode with generated content before handing it to the template for displaying. Forms are often output using shortcodes.
Widgets are generally added to a theme’s sidebars (or widgetised areas) in the WordPress admin interface (Appearance > Widgets) and work much like shortcodes in that they generate content as the sidebar is constructed. WordPress ships with a number of widgets such as post lists.
What IssueM Adds To Your WordPress Site
So now that you’ve got a basic understanding of WordPress’s components, we can look at how exactly IssueM, which is a plugin, of course, extends a WordPress site.
Adding to the Content Model
IssueM adds a new content type of article to the existing content types, posts and pages. Articles are very similar to posts but as you’ll see on the article edit screen, there’s a few extra fields such as author and teaser. IssueM adds articles so that you can keep your issue-based content separate from your regular posts.
Three new taxonomies are also added, issue, article categories and article tags. Issue is a taxonomy on steroids and has a number of additional attributes such as status, PDF link and cover image.
Article categories and article tags work in exactly the same way as the built-in categories and tags, allowing the grouping of articles. They are only available if you have not selected Use Default WordPress Category and Tag Taxonomies in Articles > IssueM Settings > Categories and Tags.
The new taxonomies can only be applied to articles.
All these additions are reflected in the new menu option, Articles, that you’ll find in your WordPress admin interface.
Shortcodes and Widgets
IssueM adds a number of shortcodes for displaying the featured rotator, the featured thumbnails, a list of articles and a list of issues.
The plugin also adds 3 widgets, Article Categories, Active Issue and Article List, which can be added to any widgitised area.
Changes to your public site
IssueM actually has little impact on your public site, other than to provide a default layout for your Articles and Issues pages (defined in Articles > IssueM Settings).
When these pages are requested, IssueM will intercept the request, check to see if the page contains any content and only if it doesn’t will it add the shortcodes for the rotator, featured thumbnails and articles (for the Article page) or the shortcode for the issue archive (for the Issues page).
You can also take advantage of WordPress’s out-of-the-box support for listing post types and taxonomies to:
- view a paged listing of articles at http://[your domain]/articles
- view a list of articles for a particular issue at http://[your domain]/issue/[issue-slug]
- view a list of articles for a particular article category at http://[your domain]/article-categories/[term]
- view a list of articles for a particular article tag at http://[your domain]/article-tags/[term]
Remember, IssueM is not generating these pages – they are all being generated by WordPress using the default template hierarchy.
There are a few other places where it’s important to note that IssueM has no influence. The first is your home page. If you are listing posts on your home page then articles will not automatically appear in that list – you’ll need to tell WordPress to add them.
The second is your RSS feeds. Again, articles will not automatically be added to your site’s primary feed so if you want your articles in there, you’ll need to let WordPress know.
And lastly, the article page itself. It might seem strange but that’s actually being generated by WordPress and your theme, without any assistance from IssueM.
As you can see, most of IssueM’s focus is on extending the WordPress content model to enable you to create issues. Whilst it provides shortcodes and widgets for helping you output the issues and articles, it deliberately keeps things simple in order to maintain maximum flexibility.
Having this background knowledge, knowing what is being handled by IssueM and what is under the control of WordPress will be invaluable when it comes to customising your site and the output of your IssueM content.