Continuing the big upgrades on my website, I’ve built out new pages for my books: The Darkening Dream and Untimed. And I’m in the process of working on a generic “Andy Gavin: Author” landing page too which I should have done in a couple hours. These pages are an attempt to look less bloggy, more like typical author and book sites. I’ll, of course, be continuing to refine and add. One of the nice things about using WordPress is that it’s easy to continually modify. I’ll add reviews and promotional information. Sample chapters, etc. When I get my professional cover art for The Darkening Dream I’ll have to reskin those pages.
Please let me know (via comments) what you think about the new pages. Or any suggestions you might have. Comments are turned off on the book pages themselves, but you can use this one here.
At a technical level, these new templates show off some of the power of the builder platform premium theme I’m using. It has cool layout tools that make it easier to create different layouts in WordPress and then assign them to different pages. Each of these layouts can reference or use separately constructed menus and widgets as well. That way, for example, I have a different more bookish menu on those pages, but it’s shared by a number of layouts. I’ve also been using a quick redirects plugin to create virtual slugs that I can use to build out URL hooks that are independent of the pages themselves. And one of yesterday’s projects was getting that animated jQuery “featured post” slider going. Builder had one that formed the core, but like many WordPress plugins it was setup for a single instance with just one category. I hacked the code to add parameters to the shortcode enabling me to feature different feeds on different pages. Took all of 15 minutes (mad coding skills — and I don’t even really know PHP). One wonders why the authors didn’t build it that way to begin with. I’ve noticed that PHP code is often extremely “non-functional” with an over reliance on global variables. I don’t mean the program doesn’t work, but that it doesn’t adhere to proper functional programming style to allow easy and modular reuse of code.