Category Archives: Development

Developer or development related news

WordPress General Meetup Notes – Essential Plugins

In December we talked about essential plugins and where to find them.

WordPress.org should be your first stop to look for plugins. There you can find the Plugin Directory, which lists all freely available plugins. Aside; There’s a new version of the directory coming soon that is even better for discovering plugins! You can also browse the directory from within WordPress itself under the “Plugins>Add New” menu in the WordPress dashboard.

Plugins listed in the directory give a description of what the plugin does, installation notes, and even reviews from other plugin users. You can also see who the developers are and most plugins have an active support forum to discuss issues and feature requests with the developer. One way of determining if a plugin is good to use is to follow  a short checklist.

  • Has it been updated recently?
  • How many sites are actively using it?
  • What is the average rating?
    • What do the reviews say about the plugin?
  • Is the developer active in responding to questions?
  • Does the developer maintain other contributions to the community (plugins, themes, presenting at WordCamps, etc)?

One thing to keep in mind with plugins is performance. Too many plugins can slow down your site. Installing two plugins that do the same thing is also not a good idea as conflicts can happen that can impact performance or down right break your site! This is why having a good development site to tinker with is helpful when managing WordPress.

On to the list of plugins we talked about. I’d love to hear of alternatives or additional items in the comments!

The discussion also covered a few other related tools for managing and monitoring your site. These included:

Thanks to everyone who came out and we’ll see you in January!

WordPress General Meetup Notes – Page Builders

In October Alex Miller gave an introduction to page builders. These are plugins that can drastically change how you manage content in your WordPress site. From drag-and-drop layout options, easy galleries and more.

I took down a few notes, which try to cover some of the larger points Alex made through the evening. Feel free to drop a note below if you have any questions or feedback.

  1. Why use page builders?
    1. One reason is that it keep folks from messing up things they shouldn’t be messing with!
    2. It also makes it easy to update content without out having to be a design/layout genius.
  2. Only going to cover WordPress.org page builders – ones that are freely available
  3. Live Composer – https://wordpress.org/plugins/live-composer-page-builder/
    1. Cons
      1. bunch of clutter in the sidebar you can’t remove
      2. navigating tools in live view are a little cumbersome
      3. pre-populates text fields
      4. lots of toolbars, confusing
    2. Pros
      1. lots of tools
      2. can bring up standard WP editor in visual mode
  4. Site origin – https://wordpress.org/plugins/siteorigin-panels
    1. Cons
      1. limited layout options for ‘rows’ (like only bottom margin for each row)
    2. Pros
      1. no clutter in sidebar
      2. easy-to-use visual editor
      3. import/export layouts
    3. Beaver builder – https://wordpress.org/plugins/beaver-builder-lite-version/
      1. Cons
        1. no prebuilt templates for free version
        2. limited media ‘modules’ (called widgets in other page builders)
        3. no gradient support in column/row settings for backgrounds
        4. some default padding/margin are a little weird
      2. Pros
        1. limited modules are really easy to use
        2. responsive design break points can be set per module
  5. General notes on page builders
    1. Once you commit to a visual editor, switching (or going without) will be work – there’s not a lot of cross-migration between these competing tools.
    2. Uninstall might not keep your content!
    3. Beaver builder and site origin does add html and thankfully no shortcodes! Live editor is all inside their plugin – hard to salvage underlying content
    4. Think about what you need. Do you need a page builder (landing page) or just custom post types and ACF?
  6. Beaver builder is #1 pick
    1. good usability, flexibility, and support

WordPress General Meetup Notes – Contributing to the WordPress Community

In September our very own Jen Swisher, the lead organizer for WordCamp St. Louis 2017 shared how you can contribute to the WordPress community. It’s not just about code or design, but there are many ways to get involved. Quite frankly, we need your help!

Check out Jen’s presentation below and join us at our next monthly meetup and get involved!

WordPress General Meetup Notes – WordCamp Recap and Intro to WordPress

This month at our general meetup we talked about our recent WordCamp and what we can do better next year. If you weren’t able to attend the meetup, but did attend WordCamp, please leave a note on what we can do better next year in the comments section.

Speaking of WordCamps, don’t forget to check out other nearby events. Oklahoma City is in July, Nashville in September, and  Cincinnati in October!

At our meetup we spent the rest of the evening talking about the basics of WordPress.  We shared a few resources I’ve shared below. It was a free-form conversation and we touched on a few big points and delved into a few nitty-gritty details (like importing content) as well.

One of the first things we discussed was the difference between WordPress.org and WordPress.com. The .org version is the self-hosted, you-can-do-anything version of WordPress. This flexibility comes at a cost. You have to set up your own hosting solution (where WordPress lives) and are responsible for testing, upkeep of WordPress, and maintaining your plugins and themes. However, it is by far the most rewarding way to use WordPress as the potential for adaptation and customization is limitless.

The other version of WordPress is the .com version. This version is hosted by a for-profit company (Automattic). They maintain WordPress, plugins, and themes. However, you are limited to a smaller selection of customization options, and on their free tier have other limitations (like ads being shown on your site).

From there the conversation went into talking more about the .org version. We discussed where to find themes (WordPress.org) and plugins (WordPress.org) and how to find themes and plugins that were well-maintained and supported.

We also reviewed the Codex, the “Mother Brain” of the WordPress community. The Codex is an encyclopedia of information about every bit of WordPress. From child themes, to specific functions, it covers it all. Any time you want to learn how to do something in WordPress (especially on the geeky side of code) start with the Codex.

Another great resources is WordPress.tv. Those WordCamps I mentioned earlier? Nearly every session from every WordCamp is recorded and shared there. If you want to know more about CSS or eCommerce, there are plenty of videos to peruse – for free by folks who know their stuff. Here’s one of the first videos you should start with. Matt Mullenweg, founder of Automatic and WordPress, gave a great overview of where WordPress is at, and where it is going, last year at the first WordCamp US event.

If WordPress.tv isn’t your cup of tea, and you live in the St. Louis region, you can also get access to the thousands of videos on the education site lynda.com. More info is on the St. Louis County Library site.

One of the questions was on managing WordPress projects. Something I hope we can talk about at an upcoming meetup. For now, I think Lucas Lima (a local St. Louisian) gave a great talk last year about this very topic.

A book recommendation along the lines of working with clients was my choice pick, You’re My Favorite Client by Mike Monteiro.

That was it for the eventing – a lot to digest I’m sure. If you’ve reached the end and still want more, view past topics on our Meeup.com page or peruse the archives here on stlwp.org. OR, if you’re really adventurous, join us at an upcoming meetup!

Photo by Armando Torrealba – licensed under Creative Commons

WordPress Meetup West Notes: Dynamic Sidebars and Widgets

Thanks to everyone for coming out to the WordPress West meet up last night. If you weren’t able to make it or want to review what we covered in the presentation I’ve included the slides and some gists of the actual code used if you’d like to test it out yourself.

We went over registering sidebars, the difference between a “sidebar” and a “widgetized area” (hint: not much), displaying sidebars in your theme, and finally creating a custom widget.

Gists after the break.

Continue reading WordPress Meetup West Notes: Dynamic Sidebars and Widgets

Notes from Introduction to Functions and Hooks (Actions & Filters)

Thank you to everyone who made it out to our November General Meetup. We gave a basic introduction to how you can customize WordPress beyond Themes and Plugins using the WordPress Plugin API (Application Programming Interface)

These hooks allow you to include your own custom code within WordPress to do a myriad of things. You can use Actions to inject code, or compare variables and filters to run your own routine within WordPress (like say to pull data from an external source and format it for WordPress to ingest.

This modularity is what makes WordPress so functional for so many diverse user cases. Any plugin is really just a complicated set of functions that leverage the Plugin API to create Actions or Filters.

We gave a little demo, which I won’t repeat here as it was a little inaccurate. Instead I’d like to point you to a few resources that are far more elegant in presenting the basic concepts.

WebDev Studios has a great article on getting started with hooks with a few inline examples.

Pippin Williamson also has a good introduction to using filters, the more complicated of the two hooks (in my humble opinion).

Of course, there’s always the Codex entry on Hooks and the well-organized Code Reference library.

While a little more technical that our past General Meetup topics, we hope you enjoyed the meetup and look forward to seeing you at a future event!

Photo by Thomas Hawk – Licensed under Creative Commons

September Developer Meetup Notes – Making WordPress Plugins and Themes Extendable

Presentation

This presentation was about how to add your own hooks to plugins and themes. Code from the demo can be found here.

Other Cool Stuff Talked About

WordPress Plugins to Check Out

  • MinQueue – Plugin to minify and concatenate enqueued scripts and styles

Slack Stuff

WordPress uses Slack now. Check it out: https://wordpress.slack.com

  • Prowd – A Slack integration to recognize your team’s work.
  • Tatsu – Standup meetings for remote teams
  • Polls – Add polls to slack

Misc Stuff

  • GitUp – Makes git painless
  • Kanbanize – Online Kanban software
  • speetest-net – NPM package for running a speedtest from the command line

Quick WordPress Optimizing Tips

Last week I sat in on this great A List Apart: On Air event titled  “Designing for Performance” It was their first online-only panel with four great presenters. Along the way I picked up a few tips and tricks I wanted to share with you all.

Here’s a few quick things you can do to improve the performance of your WordPress site.

Introduction

Before we begin, if your site is accessible from the web, punch in its URL into one of the following tools (or both!).

Make a note of the scores you’re given. We’ll compare them at the end.

Use a caching solution

The first thing you can do? Install a caching plugin or setup an in-memory cache. For folks on shared hosts (Bluehost, Hostgator, etc) the easiest (and often only) option will be going with a plugin. My plugin of choice is WP Super Cache.  Why this one in particular? It’s been around for ages, is super easy to use while still being customizable, and it’s authors include Donncha O Caoimh and Automattic. A pretty good pedigree if you ask me.

If you don’t want to do much mucking around, just install the plugin and turn on caching. This will allow your site to serve static version of your pages. This make your site quicker as WordPress (and the PHP/MySQL behind the scenes) doesn’t have generate a new page for each visitor.

Advanced options that I like to use are in the screenshot below. I like to make sure I enable  compressing pages as less data has to get tossed around. “Don’t catch pages for known users.” is handy if you’re an individual editor (or have a small team). This tells WordPress to alway serve up a new page to folks who are logged in to your site. This way you always see your updates without having to clear the cache.

WP_Super_Cache_Advanced

Compress your theme’s images

Let’s say you’re building a theme from scratch, using a child theme, or even just uploading a nice crisp PNG for your site’s header image. In each case WordPress  will use images within the theme to display common elements – like that header image. When these elements appear on every page your site has to serve up that image to every viewer, every time.

One way to speed up your site is to make sure you compress these common images as much as possible. This doesn’t mean degrade their quality with heavy compression like jpg images, but to remove as much metadata and use more advanced compression algorithms as possible.

Side note: Another big win for leveraging smaller images is to make sure you’re not uploading giant images to only have them displayed at small sizes. That’s a whole ‘nother post on its own!

How do you do this? Grab an application like ImageOptim or RIOT.

With either of these apps you can drag and drop in your images and let the tool do its magic. This includes background images, header images, or even icons used across your navigation and widgets.

Here’s an example of a recent optimization from a theme I optimized. This is using ImageOptim. Either tool uses a whole suite of tools behind the scenes to make the best optimization quickly and with great results. imageoptim-example

I saved a whopping 47% on average in this theme. In the case of my background tile image I saved a whole 80%. Not to bad. (Here’s another example with less impressive, but still good, results.)

 

Set up a caching rule

Even with something like WP Super Cache in place you still might need to set up some rules about static content. Static content is things like images, documents, multimedia files, etc.

For these files, WordPress delivers the file for a visitor every time. Even if they leave and come back five minutes later!

The easiest way to do this is to modify your .htaccess file and add a few rules for static content. The .htaccess file tells your site to give folks a locally cached version of the file and to ‘expire’ the item in the cache after so many minutes. This greatly helps in the loading of those (newly optimized) theme images I mentioned in the last tip, and any other files visitors consume on a regular or repeat basis.

I’m going to direct you to this post that has the handy steps on caching static content.

 

Minify your CSS

You’re using a child theme, right? Or maybe a custom theme built from a starter framework? Once your site is ready for production you can shrink your CSS files to make things a little quicker.

Minifying your CSS takes the human-readable version of your CSS file, with all it’s great inline comments and indents, and strips all that junk out. The computer doesn’t need any of that!

Now you’ll want to keep an un-minifed version around for future changes. Take a copy of your style.css file in your theme directory and rename it. Call it style-original.css or something and set it aside.

Now, copy and past the content of your style.css file into a tool like CSS Minifier or CSS Compressor. These tools will strip out any comments or spaces (making your file pretty much unreadable by humans) and reduce the file size (and therefore load times) of your CSS.

Copy the minified CSS back into style.css and save. If you have to make new updates down the road (always in your dev environment first, right?) you can re-load your human-readable CSS file, make your edits, and minify again.

On a few sites I manage I was seeing upwards of 60% file size savings. When were talking about mobile devices in not-so-good coverage areas that could be the difference between your site loading and a visitor leaving.

 

Conclusion

This is just a few things you can do quickly to improve the performance of your site. Making your site load quickly for visitors make them more likely to hang around and helps with your search rankings.

How much of an impact does it make? Remember those tests I asked to your run at the beginning of this post? Here’s a before and after (totally unscientific) comparison to a site I manage. I ran the default tests from webpagetest.org. Just using these tips made one score go from a C to a B and another from an F to a B!

webpagetest-beforewebpagetest-after

If you have tips or tricks you use to make your site’s a little quicker, let me know in the comments below. Thanks for visiting and I hope to see you at one of our upcoming meetups!

Photo by _chrisUK – Licensed under Creative Commons

February general meetup notes – Multi-site and Multi-tennet

Multis

  • McCreary on multitenancy: “a simple solution to a complex problem”
  • Me: “To make things simple, you must first make them more complicated.”

Multisite

References

Continue reading February general meetup notes – Multi-site and Multi-tennet

January Developer Meetup Notes – Intermediate CSS and CSS Preprocessors

When it comes to CSS Preprocessors, there are 2 big ones: Sass and Less. In Matt’s presentation he covers Sass stating that the two really have about the same features and Sass just has a bigger following.

Slides will go here when Matt sends them!

 Key Features of Sass

 Sass in WordPress

Automattic’s _s theme (pronounced “Underscores”) uses Sass by default. It is also a good reference of how to setup your Sass files for ease of use. Check out _s’s Sass folder here.

Useful Tips

  • Want to try out your own Sass code online? Check out http://sassmeister.com
  • Matt showed some of his code and noted that he keeps a Sass file called shame.scss for all of his “hacks” he is not proud of…I like the idea