In case you haven’t heard, WordCamp 2015 is officially scheduled to take place Saturday March 14th and Sunday 15th at Washington University.
While we’re having the event in the same space as this year, the organizing team has some exciting new ideas that we’re going to be working hard over the next 16 weeks to bring to the WordCamp.
While we’ll still be posting news on this site, if you want to subscribe to the WordCamp specific mailing list, head over the 2015.stlouis.wordcamp.org, or follow the organizers on Twitter at @WordCampSTL.
We’re going to host a free viewing party for WordCamp San Francisco! They’re streaming all presentations across their two-day WordCamp. October 25-26.
This is one of the biggest WordCamps and their schedule is full of awesome presenters.
We’re going to use the amazing public space at Nebula Coworking at the corner of Jefferson and Cherokee St.. There will be two rooms, one streaming the Developer-focused track, the other the User-focused track.
We invite you to join us for both days. The presentations start at 11am (9am Pacific) each day so get there early! You can stay all day and hang out in between sessions, just like an in-person WordCamp. Check out the full schedule and RSVP today!
We’d like to have light breakfast options, snacks and drinks. If you can pitch in, please let us know. We’re also working on finding appropriate sponsorship.
For lunch we’re going to hit the town and enjoy the amazing restaurants along Cherokee. We’re working on getting some recommendations and menus for some of our favorite haunts.
This is a low-key event. Come as you are, relax, and soak up some amazing knowledge.
More details coming soon. Volunteers are needed. Sponsors are needed. Get in touch!
Thanks to everyone for coming out Wednesday night. It was a really good turn out and we had some interesting discussions and questions. I didn’t have slides to share so I thought I’d write a quick post to summarize everything we went over and aggregate the resources/links that were discussed. So without further ado…
The Basics of Theme Customization
In the broadest of terms, there are three “levels” of customization that we talked about. They are, from easiest to hardest:
Customizing using the built-in WordPress customizer
Using a child theme to customize presentation
Creating a copy of an existing theme and modifying
Using the built-in customizer
This approach, while also the easiest, is the most limited in scope. For an option to be customizable via the customizer the theme developer needs to add functionality via the theme’s functions.php file.
The customizer can be accessed via the “Appearance” menu in the WordPress admin menu.
The options that appear on this page vary from theme to theme, but most themes that include this functionality allow you to customize background colors, links colors, menu, widgets, and other similar things. Certain theme “ecosystems” like ThemeForest or Elegant Themes, or frameworks like Genesis, have custom theme options that are independent of the built-in WordPress customizer but function similarly.
Building a Child Theme
If you’re looking to go beyond the basic customization allowed by the customizer (either built-in or custom), the recommended way to do this is to create a child theme. Child themes inherit all of the functionality and presentation from the parent theme with the exception of the customizations you make.
We covered the basic steps to create a child theme:
Create a new folder in the wp-content/themes
Create a style.css file and copy the required header information from codex and modify for your new child theme.
Create a functions.php file and copy the code snippet from the codex that will tie your child theme to the parent theme.
Once you’ve done these steps, log in to your WordPress dashboard and activate your new theme. If you’ve done everything correctly your site will resemble the parent theme. After you’ve verified that the new theme is working, feel free to add any of the custom CSS, HTML or PHP to make the theme your own.
A quick warning about using child themes; when the parent theme updates there is a small chance that the developer may change something that breaks your customization (i.e. renaming an element’s id or class), but this isn’t considered to be a “best practice” so you should mostly be fine.
“Forking” an Existing Theme
The most advanced way to customize a theme is to create your own theme by copying an existing theme and modifying its theme files. At the least, you’ll have to edit style.css so WordPress won’t attempt to update your new theme if the existing theme is updated.
If you purchased the theme from Code Canyon, Theme Forest, or another, there may be some ramifications if you distribute the theme. I would consult the license that came with the theme for specifics. All the themes found on wordpress.org are open source, but it is a good practice to always give credit to the original author.
What The File – “adds an option to your toolbar showing what file and template parts are used to display the page you’re currently viewing”
Page Builder – “Build responsive page layouts using the widgets you know and love using simple drag and drop”
We had a great turnout this month – even with the Cards game happening just a few blocks down the street. Thanks to everyone who came out!
The main topic of the night was covering some handy tools that help you keep tabs on your WordPress site. We covered Uptime Robot, Infinite WP, and Google Analytics.
This handy website lets you know when your site is down. When a site is down that means that visitors aren’t able to see the site and won’t know why! By using Uptime Robot you can setup alerts to be notified via email or SMS when your site is inaccessible.
This is a free service and you can track up to 50 sites! They don’t have to be WordPress sites at all – this works for any site you’re interested in tracking. The service is hosted, so there isn’t even an installation process. Just sign up, add your sites, set how frequently your site should be checked and wait!
It’s also super handy if you have multiple sites across clients. You can know before they do when a site is having an issue. You can quickly figure out what’s going on, and let your clients know preemptively!
Infinite WP makes managing plugins and theme updates across multiple separate WordPress installations a breeze. You install a simple client on your web host, a plugin on each of your sites, and away you go!
Infinite WP will let you know when your sites have an update available and you can update by site (all plugins at once), by plugin (this plugin on all sites where its installed), or even piece mail – one at a time. There are a ton of add-ons for Infinite WP that extend it’s capabilities even further.
A recent update also brings easy backups to your sites. So your workflow could be something like:
Get a notification of an update via Infinite WP
Backup your Dev/Test site.
Update your Dev/Test site to make sure things are hunky-dory.
Backup your Production site(s).
Update your Production site(s) without leaving your beach chair.
All of that without leaving Infinite WP.
We could have easily spent multiple evenings covering the various ways you can leverage Google Analytics it’s that powerful. In a nutshell Google Analytics allows you to keep track on how visitors get to your site, what they do on your site, and some demographic information like geographic location and what browser it uses. It becomes even more powerful when you get into developing campaigns and set goals for your visitors.
Say for example you’re promoting a big event or a new item in your store. You can send out emails, tweets, and Facebook updates with a specific URL that will tell you, in Google Analytics, which outlet lead to that person arriving at your site, and what percentage of visits turned into ‘conversions’ – someone did something you wanted them to do like sign up for a newsletter or buy something.
Editors note: This is a guest post by Robert Gadon. Robert is a WordPress enthusiast who has used the platform since 2011. He aspires to improve his knowledge and skill using WordPress and enjoys sharing what he’s learned with others. Robert joined the St. Louis WordPress meetup in late 2013 and is a regular attendee at the monthly meetings. If you’d like to be a guest writer here on STL WP, let us know.
WordCamps are community-organized conferences that bring WordPress enthusiasts together to share mutual knowledge, experience, and interest in the platform. St. Louis has hosted several day-long WordCamps in each of the last several years. Planning is underway to do so again in March 2015.
WordCamp-Chicago 2014 hosted 350 attendees, second only in attendance behind the WordCamp-San Francisco. It was recently held the weekend of June 13-14 at the University Center conference facility, located in the downtown Loop at 525 S. State Street.
To meet the needs of new and intermediate level users, WordCamp Chicago offered a 1-day intensive workshop the day prior to the formal conference called ‘Foundation Friday’. Four instructional tracks were offered to target a skill range from beginner through advanced. Corporate and community sponsorship of WordCamp Chicago kept the enrollment cost down to $20 per day, which encourages attendance.
Bus, train, and airline connections between St. Louis and Chicago are frequent and reasonably priced. While some may to prefer to drive the 300 miles between the two cities, parking in downtown Chicago is limited and expensive.
My travel between the two cities was just under $40 when I booked 2 months in advance. I arranged travel to Chicago via Megabus, and returned to St. Louis via Amtrak. Both trips are scheduled for 5-1/2 hours one-way. Passenger rail service usually takes longer due to competition with freight traffic around E. St. Louis and Chicago. Southwest Airlines’ one-hour direct flight to Chicago-Midway runs about $140 round trip. The Chicago Transit Authority (CTA) Orange Line train connects Midway with the downtown Loop for $2.25 one way.
The WordCamp Chicago web site provided a list of housing options close to the event. They include the WordCamp meeting venue, the University Center conference facility (which serves as a dormitory for several nearby colleges and universities), Hostelling International-Chicago at 24 E. Congress Parkway (1 block north of University Center), and a link to Air B and B, the online housing rental service.
From previous visits to Chicago, I opted to stay at the hostel. For under $40/night, I shared a 2-bedroom suite designed to accommodate up to 4 people/room. The suite had a communal lounge, kitchen, and bath. The rooms included a personal luggage locker to secure belongings. Lodging also included breakfast, access to a commercial kitchen (handy for preparing and storing food), several public lounges, and free wi-fi. During my 4-night stay, I shared my room with travelers from Belgium, Turkey, and Slovakia.
Working as an independent free-lancer limits opportunities to regularly engage with people face-to-face about WordPress. Locally, I’m limited to monthly Meetups once or twice a month, and occasional interaction online through support forums. It was exciting to walk into the conference center and encounter hundreds of people from throughout the region and beyond gathered for 3 days to share their enthusiasm, knowledge and experience with WordPress.
WordCamp presentations were formally organized along 3 tracks: architect (design); foreman (design implementation); and engineer (development), with additional presentations offered around topics of a general interest, and business and project management. I was particularly interested is presentations about site design, work flow management, and business management and development.
The conference organizers recruited a superb set of speakers, whose video recordings can be found at ‘WordPress.tv’ (Here’s the complete list of WordCamp Chicago). The slides shown in most of the presentations are available on the WordCamp Chicago web site (June 16 post, ‘WordCamp Chicago Slides!’). As of this writing, the conference schedule is still posted on the WordCamp Chicago 2014 web site. Look it over for topics of interest. Chances are you can find a video recording of most of the presentations through WP.tv.
The Saturday lunch break offered several activities to socialize. I joined one of the networking lunches at a nearby restaurant. It offered a great opportunity to listen in on several conversations at once, ask questions, and glean valuable information on everything from plugins to working with clients. I was pleasantly surprised to meet two freelancers from Missouri; one from suburban St. Louis, and the other from the state’s southeast corner.
Several presentations particularly stood out;
Michelle Shulp – ‘A Web Site is Not a Poster’. She discussed the differences and challenges between designing for a static versus dynamic medium (print versus web). Michelle referred to useful design concepts (‘style tiles’), tools (Macaw.com), and bloggers (Brad Frost | Atomic Design) in her presentation.
Troy Dean – ‘101 Ways to Elevate Yourself and Demand Higher Fees’. Funny, provocative, bombastic, and occasionally profane, Australian Troy Dean offered a thought-provoking list of lessons learned on improving your business as a WordPress freelancer and consultant.
Rebecca Gill – ‘Solutions Before Development: Creating WordPress Products That Actually Sell’. Rebecca explained her transition from builder of custom themes to developing a theme shop targeted to classes of small business and institutional clients (e.g. lawyers, dentists, accountants, educators). She reexamined her approach to product development and marketing to redirect and build a successful small business.
After reviewing my conference notes, I estimate it will take me a year (!) to fully integrate all the new information I recorded. On balance, WordCamp Chicago was a transformative experience that helped me go deeper into the WordPress platform.
P.S. Benjamin, the fine gentlemen behind the camera, is a film producer and director. Check out his short film “Misery Mountain“. It’s a bit spooky, so make sure you watch it with headphones late at night – after the kids have gone to bed.
Editors note: This is a guest post by Brian Goldstein. Brian is a freelance WordPress developer in University City. He’s also nearly completely self-taught. To see some of his work or to get in touch, check out briankappgoldstein.com. If you’d like to be a guest writer here on STL WP, let us know.
There are a few plugins I tend to use on just about every WordPress install I do – for me or for a client. I always use a back-up plugin, SEO by Yoast, and I’ll almost always use Advanced Custom Fields.
As a developer or a designer, it’s tempting to hide everything away from your clients, so they can’t break the site you’ve just built. ACF helps maintain the design and code integrity of the site while giving your client a way to update content without you. It uses the same logic as the WordPress Loop, so implementation and troubleshooting is simple.
In this article I’ll show 3 simple use cases from a few sites I’ve worked on recently.
A common way to use ACF is with another popular plugin, Custom Post Types UI which makes creating custom post types a breeze. Once you create a custom post type, you then create the field groups you want to use and then make them available only for that post type. Once you enter in all the information, be it text, images, or video, you write a php loop calling in those custom post types. Here’s a more concrete example:
Here, each of these boxes of content are custom post types. One advantage is that once your client “gets” how to make a new blog post, they also know how to change a custom post type. Here’s a screenshot of the editing view of one of these custom post types.
As you can see, instead of the standard WYSIWYG (What You See Is What You Get) content editor, you can show the custom fields. ACFs documentation is a clear and an excellent resource.
After you enter the content for each custom post type, we’re ready to edit our theme files to dynamically loop in our custom post types.
On this project, because I also want to display that content elsewhere, it’s inside content-services.php, not the service.php template file. In this case, they are closely related, as we’ll see.
Here is the code for the query that calls in content-services.php on the service.php template :
We open a php block and define an array with the post type we want, then query that array in our loop. The loop pulls in our content-services.php file, where the code that pulls in our fields live. That code looks like this:
Every time you see “the_field()”, that’s pulling in the information you entered in your custom post type. Because the loop ends in services.php and this is inside that loop, you only need to make sure you close each php block, not the loop itself.
This example and the next require purchasing the repeater field add-on to ACF. It’s one of the few premium plugins I’d ever recommend buying.
Using the repeater add-on makes displaying a lot of the same kind of information super simple.
For instance, on a restaurant site I recently built, the client needs to be able to change their menu without calling me each time they want to update a menu item. So I built out the menus using ACF’s repeater function.
Each menu section was its’ own field group – so they could add or remove the groups at will. Then, using the repeater I created 2 or 3 sub fields depending on the menu section. Next, I entered in all the data for those menu items – the name of the item, the description, and the price. Finally, it was time to code it out. Here’s what that looked like. These are inside a container div, which has at least one row, and it’s broken into 2 columns in the bootstrap grid, for some context.
Similar logic – you’re telling it to find the field group app here, and if there are rows, while there are rows, to display the sub fields Item, Price and Description.
Using ACF repeater to dynamically insert images into a carousel.
Again, similar code: creating a loop that checks for the field, and then if there is data for the subfield, injects it into the source attribute of the img in the carousel. Because it’s just PHP, you can use it just like you use other WP tags. The client can use the photos they want to use without my involvement. You can see this example and the previous example live on plantershousestl.com.
Truth is, I haven’t even scratched the surface of what ACF can do. If you have an ingenious use for ACF, I’d love to hear from you. ACF’s simple code, easy integration on the WP dashboard, and versatility into any design you can imagine make it a go to plugin for me.
It’s 3 short multiple choice questions and a giant text box to share your thoughts. Please be honest and only reply if you actively attend our Meetups. For all you lurkers – don’t be shy, come join us!
Take a moment to let us know if our meeting time, date, and location work for you. It’s our only way of making sure our community grows and is successful in helping our fellow WordPressers.