WordPress Terminology

Here’s a beginning to what may turn into a few posts spelling out some WordPress terminology. As shared at the SJWP Meetup on June 5, 2017: WordPress Terminology: What’s a permalink? and other burning questions.

At the Base Level

Database: this is where all your content lives, hidden in the dark recesses of a web server. Your database consists of, at minimum, the 11 core tables that are required for a WordPress site.

Database table: think of this as a spreadsheet. It’s rows and columns of data. Your site’s content is in a database table called wp_posts. Your user account, menus, comments, etc. are all in different tables, and WordPress knows where to go to find and display that data.

PHP: the scripting language that makes all the magic happen. It reads and writes information to the database.

CMS: abbreviation for Content Management System. Simply put, a CMS gives you a way to add/edit/delete content on your website without having to know anything about the underlying HTML and other code. It stores your content in a database for retrieval when you or a site visitor calls for it. WordPress is one of many CMS’s out there; currently it is by far the most widely-used one on the net. As of this writing, it runs just shy of 60% of all sites running a CMS, and 28% of the entire web.

Extending WordPress

Themes: the theme of your site determines what it looks like. There are literally thousands of them. Popular places to find themes are the WordPress repository (available directly from the WordPress back end) and Themeforest.net.

When you’re looking at themes there are some really important factors to pay attention to:

  • Simplicity. Yes, there are themes that are built to be all things to all people. What this usually means is that they are absolutely loaded with options you probably don’t need and will never use.
  • Responsive. Your theme absolutely has to be mobile-ready, if not mobile-first.
  • Browser Compatibility. If you find a theme that specifically mentions one or two browsers as ‘preferred,’ run away.
  • Plugin support. Assuming you haven’t bought an all-in-one theme, you want to be as sure as possible that the theme you’re about to use won’t be fighting with very common plugins like Gravity Forms, Yoast SEO, popular caching plugins, etc.
  • Translation-ready. If you’re working on an English-only site, this isn’t going to be an issue. But if supporting multiple languages is ever going to be a factor, you’ll want to be sure your theme will handle it.
  • Page Builders. They’re all the rage these days, for good reason, but they’ll work best with themes that don’t fight WordPress standards.
  • The Sniff Test. If a theme hasn’t been updated in years or otherwise smells like it’s well past its sell-by date, move on. “When in doubt, throw it out” is as applicable here as it is when you’re rummaging through the fridge.

A child theme is basically an extension of its parent – allowing you to future-proof the changes you make to turn a canned theme into exactly what you need.

Frameworks: generally, a framework is a stripped-down theme that’s ready for just about anything you can throw at it. Frameworks extend WordPress core by giving you additional functionality. Coders tend to like frameworks because they take care of a bit of the drudgery for them and give them some features they’d have to create from scratch otherwise. Examples include Genesis, Divi, Dynamik, Thesis, Beans, and Gantry. If there’s one you know of that should be on this list, let me know in the comments.

Plugins: like themes, there are thousands of plugins. I can do an entire evening just on plugins, on various categories of plugins, or even single plugins. The real power of WordPress, or any CMS that supports extensions like this, is in the way various plugins can be added to the basic CMS engine to extend its capabilities. Includes plugins for e-commerce, forms, security, backups, custom post types, and on an on.

Shortcodes: in short (hah!), shortcodes are a way for a developer to allow the end user to invoke any number of steps, or long strings of actions by entering a snippet of text. For instance, if you’re using Gravity Forms you’d enter the following shortcode on your page to display it as-is (swapping the {} for []):

{gravityform id=1}

But you could go further, because the Gravity Forms developers added a bunch of extra parameters. So a much longer shortcode would be something like:
{gravityform id=1 title=false description=false ajax=true tabindex=49 field_values='parameter_name1=value1&parameter_name2=value2'}

All that extra stuff says to display the form, don’t show the title or description, use Ajax to display form animations, set the tabindex to a very high number, and pre-select a couple of values in the form. That last bit is really handy when you want to use the same form on multiple pages, but want to set it up so the obvious choices on each particular page is automatically selected for the user.

Plugins that offer shortcodes will usually have documentation that spells out what they do and the values that are supported. Oftentimes the plugin author has also added a button or two to the TinyMCE editor so you just have to click it and make a few selections so the code will be generated for you.

Working in the back end

There are a ton of tools available in the WordPress back end, all listed down the left side of the screen. For a simple site the list can be pretty short. For a complex one, the list can be daunting.

In general you’ll find that the list is grouped as Dashboard, Content of various types, and Settings. If you have multiple users on your site and you only want to give them access to certain tools, there are plugins that will allow you to hide anything you don’t want them to see (I use Admin Menu Editor Pro).

Customizer

WordPress has a tool called the Customizer that has been vastly improved over the last few versions (See Appearance -> Customize for this tool). With controls for general settings, header, footer, content, widgets, menus, and other aspects of your site, you can get a great head start on, well, customizing the look of your site from this one tool.

Custom Fields

You can still see WordPress’s blog platform roots in the way data is entered for posts and pages. The basic entry tools for title, body copy, and featured image are very simple and don’t allow for specialized data entry.

Enter Custom Fields, also known as post metadata. These fields can hold any extra information you may want to store and display with your posts. They’re often used with Custom Post Types to make sorting and searching for specific information easier for the end user, and to make it simple for the site designer to lay out and style different types of information individually.

Custom Post Types

Simply entering all of your information as posts can be pretty limiting. Custom Post Types are a great way to segregate your content into various types. In one large site we built, we created CPTs for programs, facilities, contacts, funders, and events – and set it all up so that these bits of data could be related to each other and displayed together as needed.

We’ve also build a site for a symposium that included a rich agenda tool that related scheduled presentations to speakers and sponsors, all of which were cross-linked to each other so you could look at a speaker’s bio then click through to see the topics would be presenting; from there you could see the sponsor for that talk and click through to read about them as well.

Permalinks

Finally we get to Permalinks. As you know, every page on the web has a URL associated with it, and WordPress content is no different.

Check out Settings -> Permalinks. This is where you define how those URLs are generated. You definitely don’t want the default choice, which is simply your URL followed by /?p=123, where 123 is the post’s record number in the database. This is terrible for SEO as it has no relation to the post’s content and tells search engines nothing about what’s on the page.

There are several pre-mixed choices to select from, and plenty of theories about the best combination to help boost SEO. There’s also a set of structure tags you can use to customize them; I pretty much always use /%category%/%postname% – this gives you something like http://transmitstudio.com/wordpress/wordpress-terminology, the URL to this very post. According to the SEO experts over at Yoast, this is likely your best bet for impressing the search engines.

So Much More

I could go on for a long time coming up with WordPress terms and definitions, going deeper and more detailed until your eyes cross and I fall asleep typing, but I’ll save them for another post.