How to Structure Complex Sites by Greg Schoppe
On July 22nd, Bytes.co’s Senior Developer, Greg Schoppe, presented at WordCamp Boston about “How to Structure Complex Sites.” Greg delivered a phenomenal presentation to the Boston WordPress Community. Following his presentation, Greg was approached with several compliments and follow up questions regarding his presentation. This is the second year Greg has presented at WordCamp Boston and is his third WordCamp presentation.
Here are some of Greg’s key point regarding structuring WordPress Website:
What not to do when structuring a website:
- Misusing post types and taxonomies
- Filling Content with HTML or shortcodes
- Building ID or Slug Specific Templates
- Misusing Widget Areas
- Confusing UI or Too Many options
- Confusing Content editors for design
How to structure your website correctly:
- Posts – The most basic building block of WordPress sites. When thinking about how to store information on a WordPress website, your first thought should be, is this a post?
- Users – Add users only if authentication is required. There are several different user roles with specific levels of permission on the website including administrator, editor, author, contributor, and subscriber.
- Links – Although the interface is no longer on WordPress, the functionality remains. Links can be re-enabled using Link Manager. If you want to create a list of several websites or bookmarks, links can be very useful.
- Terms – Used to group together similar posts or other objects. They are optimized for fast archive queries (used to get all posts within a specific group) and term lists queries (used to list all groups relating to a post). Crucial for organization, searching, & filtering.
- Metadata – Used to store data that is associated with a single object. Also used to provide searchable fields where an exact match is not always desired. Metadata allows you to add new functionality to posts that they don’t support out of the box.
- Options – WordPress options are used to store almost everything about a site that isn’t directly related to a single page or term. Commonly used for settings or information that relates to multiple areas of a site.
- Page Builders – Control the layout on a page-by-page basis. They are very useful for design heavy sites but can make it difficult to organize site data.
- Custom Tables – Should be a last resort to enable functionality that does not fit into the standard WordPress data structure. Common uses include search caches or large databases of parts or products.
- External Datastores – For high-performance sites or high traffic sites. Sometimes WordPress’ MySQL database can’t provide the necessary performance. In those cases, there are great plugins to use systems like Elasticsearch or Redis to access large amounts of data quickly.
View Greg’s full powerpoint presentation here: How to Structure Complex Sites
In addition, Greg highly recommends John Eckman’s presentation on Page Builders. You can view that presentation here: The Blob, the Chunk, & the Block: Structured Content in the Age of Gutenberg
Aaron Silber’s BIG Win
In addition to Greg’s presentation, Bytes.co also made quite the impression at WordCamp Boston this year with our very own Aaron Silber winning the Wordfence CTF Competition. This competition is all about website security, particularly with WordPress websites. The competition was very similar to capture the flag, WordPress edition. Aaron’s goal was to find the “flags” hidden within the database of the websites. It was a true test of Aaron’s cybersecurity knowledge. There were various levels ranging from simple to complex and each level completed meant more points distributed to the player. Aaron swept the floor, coming in with a total of 570 points. To give you some perspective, the second place winner received a total of 170 points.
At Bytes.co, we take great pride in our ability to investigate, discover and resolve any security issues that come our way. Aaron’s big win at WordCamp Boston shows how seriously we take security here at Bytes.co.
Congratulations on an amazing win, Aaron!