I attended WordCamp Miami 2015 during May 28th-May 31st. The venue was Florida International University (FIU), my alma mater. The FIU campus has undergone a transformation. 16 years after I graduated, the campus has new buildings, fast food joints like a mall. I do feel proud of the fact that FIU campus at University Park has undergone such upgrades. The buildings sure look nice.
Enough about the venue, let us get down to what this post is really about. First day of the WordCamp was Theme and Front End Development course. There were talks about getting your feet dirty in the theme development. What follows are my tidbits on what I gathered during the talks. I was not able to attend all sessions. I focused more on the development/theme coding sessions.
Presentation/Slides are located here.
Day 1 : Core Concepts of WordPress Themes
- Double quotes in PHP echo statements will automatically replace the variables with their respective values.
- Template Hierarchy : wphierachy.com
- Presentation Slides
- Any member of the template hierarchy will have a version of The Loop
- The “body” of The Loop is where all posts are rendered
- “Show Current Template” plugin shows the actual template being loaded for a particular page/post.
Day 1: Building A Theme Using _S
Personally, this was my favorite talk. It was presented by Morten Rand-Hendrickson. Morten (“Mor10″) took a very hands-on approach by walking us through an actual project he did for Emily Carr university. For the project, he had to design a site for a mouse-only navigation where movies created by student artists would be showcased. He used the _s theme and built on top of that, incrementally achieving the final outcome.
- Code Location – Project code used for Presentation. This theme was derived from _S (underscores.me).
- Advanced Custom Fields is an easy plugin for adding custom fields to posts
- CPT UI – Used for creating Custom Taxonomies
- Mediaelementjs.com – Used for video controls
- Isotope – automatically filter content on page. It does by appending class names.
- When you download from underscores.me, whatever you put in the “Name” field will be inserted into the code (example: wcmia_*).
- google.com/fonts will show you the preview of all fonts
- display:flex (flex box can be used for auto prefixer) allows equal height columns without using float and clear. This is a CSS directive that enables equal height column layout. Can be used for orienting any content, horizontal or vertical.
Particularly, this talk was very insightful. Mor10 kept us engaged for 2 hours. That is a long talk by any coding standards. Mor10 was patient with our questions. He went step by step through his git changes. Moral of the story: For something so complex, break things down into smaller pieces. Connect the actual pieces from the problem into WordPress posts, taxonomies, custom fields etc.
Day 2: [Development Track] Beyond the Post: Pushing the limits of Custom Post Types
Look at this for an example of custom post type: wordpress.org/plugins/meteor-slides/developers
FieldManager – github
CMB2 – WebDevStudios github.com/WebDevStudios/CMB2
ACF ( may still require coding)
Day 2: [Content Track] How to Come Up With Articles for your Blog
- We only blog when we feel inspired
- We let our insecurities hold us back (“I am not a writer; I don’t have any thing important to say”). This prison is one of your own making.
- We only blog when we have a new insight.
- We simply need to learn to tell good stories. You do not need to be a story teller to be able to blog/write. The process of telling a story starts with Point, progresses to Context and then you Start.
- We will only blog when we are interesting.
- Source : What did you see?
- Story: What is the story?
- Lesson: What is the point?
- Audience: How do I shape it?
- Point: What should they do?
Day 2: [Content Track] Constructing a Large Informational Site by Becky Design
Use Facets for filtering and narrowing down content from different taxonomies. The FacetWP plugin sounds very interesting in that it has a broad range of applications. I am excited to make this work for ecommerce sites using WooCommerce.
For creating custom taxonomies, you can either code your own via a plugin or use the CPT UI plugin.
Day 2: [Development Track] Cache Money Business by Mark Jaquith
2 Slow 2 Furious – Slow Sites are not good for performance
- Do Less Work
- Work Less Often ($TTL = 5400;)
- Make Generic Output (less personalization)
BatCache – WordPress cache plugin – for full Page Cache Output
W3 Total Cache – Complex WordPress cache plugin
WP Super Cache – Medium complexity cachine plugin
CDN – Content Distribution Network – Points setup around the world for better performance
Nginx Cache Purging – 3rd party module for purging nginx cache
Varnish – Does not support SSL pages
Logged in = no page caching?
Cache Buddy – Subscribers and Users will not appear as logged in users
Cache WordPress Objects
APCu (Single Server Only), Memcache, Redis
Day 2: [Developer Track] WordPress and Third-Party API
API’s – WordPress API’s are written in in JSON (REpresentational State Transder)
How to build plugin’s which communicate via JSON API
json_decode(), $get., CURL are not what we use in WordPress
WordPress APIs – HTTP API is an important API for sending and receiving data to/from external sites.
Example was retrieving a random joke via JSON from the ICN Joke Database (Internet Chuck Norris Joke Database). You can integrate this code into a widget within WordPress or a shortcode.
That’s it! I only attended 2 of the 3 days. I skipped the Sunday schedule. All in all, it was a good event. As with any WordCamp, some talks were more useful to some people than others. It all depends on whether or note you received actionable stuff from any or some of the speakers. In my case, constructing a custom theme based on _s was enlightening. Additionally, I am excited to try out the FacetsWP plugin within an ecommerce site. By that measure, this WordCamp event was very useful for me. I look forward to WordCamp Miami 2016.