This seems trivial, but it took me hours to troubleshoot this problem. I hope I save someone else from that.

WordPress custom post types are great – they make it so easy to create any kind of ‘cataloged’ posts, like a portfolio, or a library of DVD’s, or products to sell. I’m building a portfolio and testimonials using custom post types and for the most part this has gone really smoothly.

The one major hiccup was pagination. If you want to display say 10 custom posts on a page (an actual WordPress ‘page’) and then have the user be able to flip to the next page, you’ll need to use some kind of pagination like WP Page-Navi.

I spent hours trying to get paging to work on my testimonials, until I finally found a very important note in a discussion thread about custom post types:

You cannot create a Page using the same string name as your registered custom post type.

That means that if I register the custom post type ‘testimonials’ I cannot display it on a page named Testimonials. One of them has to be different.

Whew. I wish I’d found it earlier, but making that simple change fixed my pagination issues in a second.

Work was a little slow midsummer. It’s really picked up in the last 4-5 weeks – a number of new projects getting started, and enough work that I hired a second intern this week. But during the lull I seem to have strayed a bit from my ‘ideal client’ mentality.

I’m working on a few jobs where the client brought the design and just wanted some ‘design advice’ and coding. I won’t do that again anytime soon – I find it really frustrating to offer well-considered advice, only when asked for, and have it ignored, or worse, be told that I don’t know what I’m talking about. That’s not the kind of client I enjoy working with. I like partnering with people who value what I can bring to the table, not just my skills as a codemonkey. But here I am…

I took one of those jobs because it offered me a good opportunity to get some experience in a niche market where I’d never done any web development work. I think that was a good move and will be worth some frustration; the development parts are challenging and I love a challenge.

But the other one, it’s one of those situations where my instinct was on the fence. It didn’t say ‘run away’ clearly, which is what usually happens. It just said ‘meh.’ So I took the project mostly because I was in a slow work period. I’m being paid fairly; it’s just frustrating to see what could be a really beautiful website  build around a finely-detailed, high-end product instead looking like something from the mid-to-late ’90’s. Sigh.

Teeth gritted, I carry on and learn another lesson about the importance of choosing the right people to work with for the right reasons.

Yesterday around lunchtime I opened up Thunderbird to discover that about 40 emails were missing out of my inbox.

I wasn’t that concerned because I’ve had things like that happen before, but as I went through the numerous recommended recovery steps and still had no email, I started thinking about what was actually in the inbox.

A few were digests I hadn’t had a chance to read yet, a couple were newsletters I wanted to go through later, but most of them were client correspondence I’d already replied to, or was awaiting a reply to. Nothing horribly important.

So now I only have four emails in my inbox. That’s a lot better. I’m still going to try to recover that missing mail, but what happened was not actually that bad. That’ll teach me to clear out my inbox more often, maybe.

On Saturday night I downloaded the Hybrid WordPress framework and installed it on the site where I’ll be reworking my main website. By Sunday afternoon, I was a total convert from WP Framework.

I learned more about advanced WP custom theming in a day than I have in the last month. Very excited to delve more deeply into Hybrid and all its possibilities.

Well this took a big chunk of time last night so I thought I’d start a post here with the info I collect. Here’s the .htaccess text for parsing PHP in HTML files on various hosts.

Network Solutions

AddType application/x-httpd-php .html
AddHandler Extension_Type .html .htm .php3 .php4 .php5
Action Extension_Type /cgi-bin/php.dat

HostGator

AddHandler application/x-httpd-php5 .htm .html

I’ll add more as I run across them.