I really like using reveal.js for slide presentations. But haven’t figured out how to embed them in WordPress, yet.

There’s a plugin but it doesn’t work. At all. In any recent version of WordPress.

But reveal.js does work fine in an iframe. So think I’ll work on that…

Celebrity Photo Ops extends Don Myers’ earlier project by supporting the purchase of photos with celebrities at conventions. 

And for this project, Don provided pre-purchased, edited and printed photos on-site, in addition to password-protected downloads of high-resolution images.

The back end for this site included many of the features of the earlier T-shirt Bordello Blog site for cataloging and loading images into WordPress.

In addition, this on-site web application matches purchaser’s tickets with their finished image files in real time, using a sign-in form connected to a bar-code reader and a database connecting the purchased-ticket number with both draft and final, edited images.

This project is currently on hiatus – it really requires a large convention to be cost–effective. home page

My Career Catapult

My Career Catapult,, supports a one-on-one job-search training program. The overall site design and home page were developed by Joey Marchy when he was with Wingard. I was brought in to work directly with the site owner to design the database and complete the back-end development.

The back end I wrote supports training-plan purchase and upgrades,extensive user input for training exercises and email communication between the trainer and students.

I used jQuery and Ajax to support sign-up and purchasing and for validating and submitting user content.

Since most of the user-generated content is text responses to questionnaires, retrieved only for user updates and for coaching, not searched or indexed for other purposes, it is stored in a single data table in JSON. Other data tables store user details, course details, and user-course data including payment records.

Wingard’s original project scope did not include any administrative functions. After a trial period in which I assisted with occasional admin. adjustments, the site owner and I determined that we could manage most admin functions from a single, interactive table of combined user data and user-course data. I added that table using the jqGrid jQuery plugin.

My Career Catapult was recently sold to a new owner.

Home Page

T-shirt Bordello Blog

Don Myers, owner of, is also a graphic designer and photographer. He regularly attends horror, Sci-fi and fantasy conventions to promote his t-shirts.

One of Don’s many marketing ideas was to offer free green-screen photos of fans in costume with captions on a blog site.

In addition to attracting on-site attention for his t-shirts, Don’s goal was SEO through a blog site with a regular supply of new, original content and a large number of links from fans.

And it worked, until a change in Google’s algorithms lowered its ranking.

I wrote the back-end PHP and MySQL for for Don to perform 4 major functions:

  1. support an interface at the convention for attendees to select their photo background, write a caption and add tags, and submit their email address;
  2. match up the photos with the background selection, caption and email in a database;
  3. for some conventions, use PHP graphic functions to add user-generated text to the image itself;
  4. after each convention, and after Don cleaned up any green-screen glitches, pull all of that content into the WordPress blog database, one post per photo, with tags, in a single PHP batch job.
T-Shirt Bordello Blog Home

Home page

blog posts

Posts tagged for one convention.

blog post with custom text

Posts with custom text

individual post

A little page-specific CSS

The first page I added to this site is my current resume.

The static resume page I prepared before my WordPress experiment used floating elements, responsive CSS and separate print style rules to:

  1. present a multi-column layout, centered, for wide displays;
  2. collapse to a single column for narrow displays;
  3. produce a 2-page, letter-sized printout and/or PDF.

Now the same html is embedded in a WordPress page, using only the theme’s CSS. (Although not exactly the same html at first, because the editor likes to insert <p> tags at line breaks.) Not as good.

So my very next project was to reproduce my original resume screen and print layouts by including some page-specific CSS within this theme.

There are several ways to do this. I’ve listed some I considered.

The first two options on the list have the advantage that the custom CSS won’t be lost in a theme update. But I’m not worried about that – the theme I’m using now is just a placeholder for a custom theme – so they’re included FYI.

The last two options are just CSS – no PHP or WordPress functions. And the last one is the simplest – the one I selected for this project.

  1. Create a child theme including a separate style sheet to be loaded with wp_enqueue_style.
  2. Use wp_enqueue_style alone to load a style sheet from outside the theme, without a child theme.
  3. Include the custom css within the theme directory, but in a separate css/custom.css file, and call it separately after the main css file for the theme by adding it to header.php:
    <link rel="stylesheet" href="<?php bloginfo('template_directory');?>css/custom.css" type="text/css" />
    Wrap that with if ( is_page_template('resume.php') ) to load the custom css for the resume page, only.
  4. Within the theme’s default style sheet, use @import url('css/custom.css'); in the default to include the custom css file within the theme’s style sheet. But @import must be the first rule in any style sheet. And in this case, that’s kind of a pain, because most of the theme’s default styles are fine – I just want to modify them for a few elements and for printing. Which means I really want to include the custom rules after the default rules, not before. (Or, with @import, mark everything important.)
  5. As I did, append the custom CSS rules to the end of the default theme style sheet.

Many of my 17 custom CSS rules refer to content-specific classes unique to my Resume page. The remainder are @media print rules, some designed to hide common page elements I don’t want printed with my Resume, and mostly limited in scope to the class for the Resume page.

Appending these 17 custom CSS rules appeared to me to be the simplest way to insure that they take precedence over any other applicable rules in the roughly 2000 lines in the theme’s default style sheet, or any updates. And in the case of an update, it would be relatively simple to paste the 17 rules back onto the end of an updated style.css.

Any much more extensive effort to customize a complex theme would certainly justify a child theme, but for a simple portfolio site like this, I’d be more likely to start over with a custom theme.