Category Archives: WordPress

WordPress and the GPL, yet again

If you’re at all involved in the WordPress community, whether you’re an established or aspiring theme or plugin developer, or contributor, or bug squasher, then you would be aware that there has been a long-standing conflict between WordPress’ founder, Matt Mullenweg, and a number of premium theme developers who refuse to abide by extensions of the GPL towards themes.

Aaron Brazell explains:

Matt suggests (I think accurately) that a theme that is provided for WordPress (it does not work without WordPress) is a derivative work and requires GPL compatibility. He also suggests (accurately, I think) that GPL compliance would only enhance DIYTheme’s business as evidenced by countless other proprietary software providers who have gone open source.

I agree with Aaron’s parenthetical opinions, but have to add that the GPL’s extension is towards the PHP code only and that images and CSS  that comprise front-end may be licensed under another license. I also have to add that the GPL is extended to themes that are released “for distribution,” which protects my work when I develop a custom theme for someone.

Of the very few non-GPL-licensed theme developers, the most notorious is Chris Pearson, developer of the Thesis theme. I missed the interview mentioned by Aaron, given that it happened during office hours and I was at work, but I saw tweets, and it seemed the conversation ended on a very open-ended, but acrimonious manner. Chris Coyier has a (mildly humorous) summary. It looks like we’ll be seeing a court case soon enough.

My opinion on this matter, just as about almost everyone’s opinions on this, does not matter. What matters is that WordPress is a community project, and that the rules of game theory apply. Isolation in this project is worse than death.

I’ve been a critic of the WordPress project’s leadership, but never personally, and always on matters which I considered material and I’ve always tried to suggest, no matter how mean I’ve become, a course of action. A lot of Matt’s critics, however, are nihilistic and have nothing to offer. They don’t even have an endgame. They just revel in the power and authority that notoriety affords.

I have made my peace about the GPL-ness of WordPress themes. The safeguards to protect my intellectual property with regards to design already exist. I really don’t have much else to add, except that I personally would rather get back to work and leave this conflict to the courts.

May 31 is retro theme day

That is, of course, in addition to Memorial Day. Today I’m activating the oldest theme I have that will work with this current version of WordPress, and when I roll it back, it will be to the new theme for the year (I redesign the blog annually.)

As for Memorial Day: in keeping with this holiday, don’t expect me to greet or wish anyone a “happy” Memorial Day. Yes, many of us use this long weekend to spend some time with family, to celebrate the unofficial start of the summer, or to do other stuff. Let’s not forget that this day is meant to commemorate those who have fallen in our military efforts, if but for a moment.

My personal encounter with Jane Wells

WordCamp Raleigh has come and gone, and everyone has a lesson or two they can take with them in the days ahead. Mine, however, is deeply personal. It’s one that I didn’t expect would happen at the event, but it was forthcoming.

I’ve been known in some small circles of the WordPress community as a very vocal critic of some decisions made by those whom we consider the leadership. I’ve written some zingers of analyses that have brought about ssome heated debate.

If it were only a matter of heated debate, I’d never have been led to writing this post. My recent response to some new guidelines on WordCamp organizing led to some very, very nasty discussions by others. Jane herself left a response in the comments and that was enough for me to close them. However, others took the post as inspiration to write even more unbelievably terrible commentary.

When I heard that Jane decided to show up at WordCamp Raleigh, I didn’t know what to think. I was hoping, however, for an encounter that led to a resolution for the better.

My conversation with Jane felt awkward, mostly because I was very ashamed that the conversation had to be had in the first place. A friend (who will remain nameless) had clued me in to the effects of my writing, no matter how “fair” or “intellectually honest” it could be. I was reminded that the developers aren’t really all that inaccessible.

I had to be reminded that there is a process to conflict resolution, and that motives really cannot be gleaned just on the basis of one’s actions. I’m very embarassed that I forgot about the three schools of moral evalution, especially since I wrote about them a while ago.

I’m moving on from the matters of GPL debates, and the conflicts between the “WordPress leadership” and other developers. I still commit to serve the truth, but the truth in this matter is that even my most fair and intellectually honest analyses will always be used as ammo by smaller minds.

No idea exists in a vacuum, and at this point, it’s better for me to channel my energy and ideas to other matters. I’ve asked Jane how I can help, and I’ve signed on to helping out with the UI/Design team. I requested no special treatment, and I fully intend to earn my keep.

This doesn’t mean I’ll be some shill with non-stop rah-rah “Automattic/WordPress/Matt/Jane/name-your-developer can do no wrong” cheerleading. Everyone makes mistakes, and I’ll hear and see things that I disagree with, but I know there are better means to address them, and taking it public should actually be the last, not the first, means of resolving an issue.

Finally, I must commend Jane for engaging her critics head on. She showed that she’s sporting a bigger pair than most of those who hide behind their computer screens. She spent a great deal of last Saturday engaging the prickliest of her critics, and have won over most of them, myself included.

Post-presentation follow-up: Thoughtful Themeing resources

As I promised during my presentation at WordCamp Raleigh, I will be posting a few links to resources as a follow-up to my presentation:

First of all, here is my presentation on SlideShare, open for anyone to download and use. It would be nice to get some credit if you’re using it for another presentation, but you don’t have to.

Slide 28 has some suggestions for self-intiated study. The codex can be pretty arcane but not ununderstandble. In fact I believe that a lot of it is well laid out and there is a very sensible flow to the documents in the Blog Design and Layout section. As for that 101-level theme tutorial? ThemeShaper has a great one, and here’s one from ThemeTation, although the latter one starts with photoshop and ends with coding. I know quite a few people who start with coding and then patch in graphics down the line, so, pick your workflow.

I was also asked to put up a “Theme Developer’s Checklist,” and guess what? The codex itself has one, and I like it more than others that have popped up since. It is pretty much an “ultimate” checklist, and if you’re doing custom work for a client, you can probably pare off half of this.

Lastly, I did mention in passing to stop reading list posts and “design inspiration” lists that don’t teach you one bit, and read something you can learn. There’s A List Apart and as a matter of personal taste and design criticism, Joe Clark writes some very good design commentary, even though he doesn’t do any WordPress-related tutorials of the sort.

Thanks so much for the great response to my presentation. I am truly humbled.

A few questions on Jane Wells’ revised WordCamp policies

UPDATE: Comments are closed. I appreciate Jane’s response at comment #9 and yes, I give her the benefit of the doubt. I didn’t write this looking for or spoiling for a fight and now that I got a response from Jane that is materially oomphy, comments are closed. Blog about it on your own sites if you wish to continue but in the service to the truth make a note that Jane has responded.

UPDATE 2: Following a real-life conversation with Jane, this post is considered moot and have written a follow-up. This issue is over and done.

The problem with blanket policies [a very acerbic clause was removed on the advice of a friend] is that you end up causing collateral damage beyond what is, in retrospect, necessary to achieve one’s goals. The same holds true for writing policy statements that have wide-ranging effects on a particular activity. This morning, Jane Wells drops a hydrogen bomb on the WordPress community. The first paragraph is pablum, the second is where the bodies start vaporizing. I will scrutinize in a rarely-used format in tech blogging, called “Fisking.” (All emphases are mine.) Here we go:

One thing that we didn’t used to spell out but has become necessary to codify is that WordCamps are meant to promote the philosophies behind WordPress itself. Lately there have been a number of WordCamps accepting speakers, sponsorships, door prizes, etc from people/companies acting in violation of the WordPress license (GPL v2) with regard to their themes/plugins.

What is the tolerance limit here? When you say “with regard to their themes/plugins,” how do you know? What’s the disqualifying standard? Is it: “all themes/plugins made by a speaker/sponsor/door prize provider have to be GPL v2,” or is it “some themes/plugins” or is it “at least one theme/plugin”?

It is the official policy of WordCamp that WordCamps not provide publicity/a platform for such individuals/businesses.

“WordCamp” is an entity now? I understand that Automattic might want to claim the name as a trademark long after the fact, the way a “tweet” has been filed as a trademark by Ev. Ambiguous language.

They are welcome to attend, but WordCamps may not have non-GPL-compliant people as organizers, sponsors, or speakers.

So, there goes Microsoft and their wads and wads of cash that they handed to WordCamp NYC. Too bad it would be nice to court their sponsorship with every WordCamp, but oh well.

Events that want to move forward and include such individuals in these roles may need to use a name other than WordCamp if the appropriate adjustments can’t be made.

This preemptive declaration of personae non gratae is disturbing.

This is because WordCamps are seen as the place to gather for the official word on all things WordPress; providing a public platform and publicity in an official capacity for people acting in direct opposition to the official word just causes confusion.

Individual WordCamps already warns sponsors and speakers that is not “pitch time.” What is this “official word,” and why does the presence of non-GPL “people” assume “direct opposition?” If a commercial, non-GPL plugin or theme developer wants to present at a WordCamp about something that gives them no additional exposure aside from their work being mentioned (e.g. said person wants to present about CSS, or an improved workflow, or wants to share about how WordPress changed their lives) does that make them unwelcome? By Jane Wells’ Standard As Of May Nineteenth In The Year Of Our Lord Two Thousand And Ten, Anil Dash would’ve been unwelcome for the keynote event in WordCamp MidAtlantic 2009.

I have no problem with the last paragraph so I’m leaving it out. Now, a message for Jane. This is going to be stern, but I’ll keep it professional. There is NO room in official policy for “common sense.” It’s for this reason that when you want the top brass of the strongest military in the world to spend a shit ton of money on your brownies, you have to follow a 26-page recipe (PDF) that spells out very specific policy, down to the last standard of what nuts may be used. Official policy statements are like that. Having worked in government sales, and having filled up immigration forms to legally enter this country, ambiguity is the enemy. Now that you are the official liaison for all WordCamp organizing, you’ll learn that while it would be nice to have your word as the Law Of The Land, there will be people like myself who will challenge you to make your statements clearer. I want to organize a WordCamp one day. I do 100% custom work, and the only “theme” I released to the wild is a palette-swap of Classic, back in 2003. I license all PHP in my work under GPL, but not the CSS and images, so my clients won’t turn around and give away a custom work I made for them. Does that disqualify me? Will I have to disqualify someone who made one commercial, non-GPL plugin?

Laying down the law never means having the last word. It means leaving oneself up open to questions. While I may be “just a guy” I know the questions I pose are fair and I would like to get an answer, preferably blogged by Jane on her own site, that more people will see her response.

Thoughts on the WordPress 3.0 menu system

One of WordPress 3.0′s most anticipated features is the revamped menu generation system. I’ve played around with the nightly builds and I am very impressed with both the front-end and back-end aspects of the features. It comes as sad news to hear that the development team is planning to shelve it for now in order to meet a timetable. That being the case, I have an observation to share and a way to address it, which I’d have submitted as a patch myself if only I knew how.

Right now, the menus are, de facto, tied into the new default theme, Twentyten. This is because the CSS rules governing the appearance of the menu is coded into the theme’s style.css. The menu itself is called using the function, wp_nav_menu, but that outputs the list, nested as necessary, without any inline CSS.

Herein lies a dilemma: what if you are a fledgling theme developer and you didn’t know about that particular set of facts? What if you’re a user who’s used to downloading themes from the repository and the theme you happen to like is no longer supported or updated by its author? You’ll have this set of features in the back-end, “Menus,” that doesn’t appear to do anything!

At first I thought that hooking the CSS into wp_head would work so that all themes would have menus and the required styles, until I realized something about CSS’s hierarchy: code that appears last takes priority. No amount of editing in the style.css would work unless it’s attached after wp_head.

So here’s the suggestion: a script/routine/whatever that checks for the presence of a WP3.0 Menu, which then checks for the wp_nav_menu across all theme files, which then checks for the menu selectors in all .css files in the theme directory. Reminder messages (red or yellow, whatever) appear in the admin screen depending on what’s missing:

  • “Menus are WordPress 3.0′s newest and greatest feature. You should give it a spin.”
  • “You have a Menu saved, but it won’t show up in your theme unless you use wp_nav_menu. Here’s a link to a few suggestions on how to do this.”
  • “You have a Menu used in your theme, but you have no CSS rules to make it look good! We’ve got sample blocks of code that you can copy and paste into your style.css.”

Or something along those lines, and I can already think of a few objections, the general themes of which run in almost any open-source project:

  • “Everyone will child theme off of 2010.” <-- UH, NO.
  • “Why would anyone need a warning like that?” <- Yes, open source elitists still say this shit.
  • “If you’re a theme developer, you need to keep track of these things.” <-- Exactly, and the warnings are there to help.
  • “Not enough people will benefit from this warning.” <-- This one is particularly dangerous.

Leland of Themelab also suggested in an email that the Menus box be enabled on the Theme level; that a function that turns it on be required in functions.php. This sounds like a good idea, too.

This situation elicits a little regret. Ive used WordPress since it was b2. I’ve seen its features evolve and I’ve built a great side business using it as a quick and efficient (not necessarily easy) way to deploy a front-end design. In all this time I’ve been in total remiss at learning PHP, the ins and outs of the development cycle, and the culture around WordPress. If I have, I’d have submitted this as a patch and fought for it. So before anyone tells me that I should submit it as a patch instead of shouting it from the rooftops, as of right now, I can’t quite do much else. That doesn’t mean that my idea is invalid.

A look at WordPress 3.0′s default theme, Twentyten

A lot of features are discussed for the new default theme for WordPress version 3. I’m using a theme base which I rolled together over the years, based off of Classic (of all things!). It’s a quick and easy and customizable way for me to deploy a site and focus on the CSS, as I believe in my document structure. My aversion to other people’s code comes with its drawback: I totally missed the bus when it came and picked up the is_singular conditional function, and I also consider leading post images as used by so many bloggers to be distracting and irrelevant, but that’s me.

A lot of the focus on Twentyten is on new features such as WooThemes navigation (which is available for all, if you know what you’re doing). Aaron Brazell recommends child-theming Twentyten, which is not a bad idea, but I think there is room for improvement in the final. I’m writing this because it’s an Alpha version, and there’s still time for someone with the PHP knowhow to do this.

Twentyten uses conditional logic in loop.php that references Category names such as Asides and Gallery. Not a bad idea, except the installation does not populate those Categories. I’m certain that there can be safeguards to overwriting existing categories when this happens for an upgrade, but if you’re going to take dibs on category names, at least populate those names or have a friendly (yellow) reminder up top that tells users “in order to make the most out of your theme, please create categories with the following names: Asides, Category, YourMomsKnickers.”
This is what I talk about when I discuss “thoughtful theming” in casual conversation.

I don’t know how to commit these suggestions or if it will even be an idea well-received, but it’s definitely worth thinking about.

Shackling a free market: WordPress canonical plugins

In matters of criminal investigation, intent can be proven by certain actions. However, in these cases, there is a jury to be convinced and a victim to be vindicated. Thankfully, when it comes to disputes in the tech community, one need not try to prove intentions through actions. One need only ask. Following the remarks from yesterday’s WordCamp Atlanta, where a trial balloon was placed in front of the world—this is the internet; everything local is global—about “canonical” or “endorsed” or “core” plugins, I must ask the WordPress lead devs, all the way up to Matt himself: why?

I’m not a plugin developer, nor a theme developer, or a pure front-end designer. I honestly don’t know what to label the gestalt of my skills, but I do good work. Part of that good work is being able to select which plugins work for my project requirements. While I truly appreciate the good intentions of the WordPress leadership in bundling plugins together and endorsing them, but I have my fears on its effects on the plugin marketplace.

Continue reading

On the matter of value

One of the biggest failures of the open-source community, and the GPL-istas particularly, is not clarifying the concept of libre versus gratis when talking about free. It’s for this same reason that I’ve learned to use FLOSS—Free/Libre Open Source Software—to refer to projects such as WordPress. This distinction hurts developers when they release plugins to the public, because not only is the general impression that access and acquisition should be gratis, but so should subsequent support.

That’s a load of bullshit. First, on the matter of support, the GPL states:

15. Disclaimer of Warranty.

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

You know what that means? That means that if you use this software and it’s not designed to cause damage but doesn’t work the way you want to, then you don’t have anyone to sue in court. It’s for this same reason that wars over GPL product are fought in the public sphere. In this field, the only currency is reputation.

Continue reading

Menu Label: a new feature for AIOSEOP

Have you found yourself hardcoding your page-based navigation menus in your theme because wp_list_pages doesn’t display your page titles the way you want to with the function? This site serves as a great example: where it says “Colophon” in my menu under the title? It links to a page whose title is “Production Notes.” With the latest feature from All-In-One SEO Pack by Michael Torbert, you won’t have to! Here’s a quick tutorial on how:

Continue reading

The costs of Free

Recently, Michael Torbert, developer of the popular All-In-One SEO Pack (AIOSEOP) plugin, released a major upgrade to, among various other bugfixes and feature enhancements, future-proof the plugin against scaling issues. I worked with him on beta-testing the upgrade, and found it to be flawless. I was one of many, but gauging by the reaction of a few, there were not enough of us who did the testing.

Continue reading

A guide to upgrading to AIOSEOP v1.6.1

Update on July 12, 7PM: A sweet welcome to WordPress.org users, now that this guide is linked from the AIOSEOP plugin page itself: Please don’t mind the scoldy, crabby, acerbic tone. If you do, skip all the commentary and just read the instructions that serve as captions to my screenshots. This was written due in part to a few posts in a forum where the main complaint stemmed from an inability to understand the instructions after upgrading. That said, the information in these screenshots is helpful, despite my meanness. What little instructional material I am wont to write is not always like this. What follows is the post as originally published.

Michael Torbert has released a major upgrade to his landmark WordPress plugin, All-In-One SEO Pack. It has a few new features but more importantly, it is even further optimized to make it easier on your database. A lot of it is technical mumbo jumbo that even I don’t quite understand, but what I do understand is that some folks still have a hard time reading natural-language instructions. Kudos to Michael for not going down the “click here” route, but some issues at the Semper Fi Support Forums are demanding a more comprehensive answer. Here’s a step by step screenshot thing guide:

Continue reading

Thoughts on WordCamp Mid-Atlantic 2009: the day after

It may surprise some to know that for a veteran of the blogsophere like myself, WordCamp Mid-Atlantic 2009 was my first ever major meetup. I’ve met up with individuals before, and recently had a medium-sized tweetup, but nothing like what happened yesterday. When I was quoted in the Baltimore Sun as taking the opportunity to rub elbows with some really awesome people, I had no shame in sounding like some kind of social butterfly. After years of being online, none of the speaking topics for the day were truly important to me. Some participants were people I have known online: some for a few weeks, some for a number of years. One, almost from the very beginning. I certainly meant to finally meet them in person.

I learned a lot more from mingling with the likes of Joel Fisher (@joelmoney) of Flush Inc and Brad Williams (@williamsba) of WebDev Studios than from listening in on a talk. Not to cast any aspersions on the value of what the speakers offered yesterday, but they were not geared towards my needs. I am sure that everyone else who attended the talks found what they were searching for, but for me, what I was looking for was in making connections with the people around me: to learn on a personal level about topics that may not have mass relevance. I learned of business practices in both the incorporated and the freelance worlds of Brad Williams and Andy Stratton (@theandystratton) respectively. Matt Martz (@sivel) and Ryan Duff (@ryancduff) shared awesome perspectives in the development cycle and the way developers in general and WP devs in particular work.I spent a lot of time listening to others speak with each other: of clients and service providers from both heaven and hell, of the excitement and difficulties in running a service-based business (and yes, I know, business is hard no matter what). I’ve learned I am relatively lucky that the clients I have had so far have been the clients any designer would ask for.

So many from yesterday were passionate with the reasons for their going: Dawn Casey (Casey Multimedia on Flickr), for example, spent most of her day taking pictures. Watching her gracefully glide through the crowd for most of the morning, I asked her if she was having fun. Her answer? “This is fun.”

For me, though, the highlight of the day was what happened after. There was a small crowd at The Brewer’s Art, where I enjoyed the Resurrection Ale per Aaron Brazell‘s (@technosailor) recommendation. I will admit to a large fanboy element in having met him and Mark Jaquith (@markjaquith), and I was really looking forward to a long-time online friend, Stephan Segraves (@ssegraves). I will refer to the Vegas rule (“What happens in Vegas, stays in Vegas.”) on the fine details of the many conversations during the after-party, suffice to say that it was fun to reminisce on the early days of WordPress. After The Brewer’s Art, a number of us headed to Midtown Yacht Club, which lived up to Aaron’s description: “It’s really not as pretentious as it sounds.” As the night wore on and we started to feel the weight of the day on us, we all parted ways. I gave Mark and Stephan rides to their hotels; they were on my way home, and beyond being the proper thing to do, it was a chance to give them the Baltimore city driving experience.

This has been a great personal and professional experience, and I know I will be attending future WordCamps in, even out of, my area.

Additional coverage:

What is a theme and what is it not?

I’ve designed WordPress-powered sites and blogs for almost five years now. I have my niche, for which I am grateful. Recently, I came across some huff-and-puff regarding Matt Mullenweg’s decision to remove over 200 themes from the repository, citing non-compliance with the GPL.

I have a feeling I’ve been living under a rock for the better part of three or so years. I’ve watched the WordPress community from the sidelines. I saw its expansion and internecine conflicts. I’ve remained silent on most issues out of being ignorant on so many of them and am not afraid to admit to being so.

However, recent events have raised questions and concerns. Jeff Chandler wrote a thoughtful post on Premium Themes and I am left with a few questions and thoughts of my own.

Allow me to introduce you to my design workflow. Whenever I design for a client my first step is to almost always begin with the WordPress Classic theme’s document structure. Old habits die hard and I have found it to be one of the most efficient ways to start off with a “naked” theme. I strip the CSS file of everything except the theme header, substitute it with a blank template of code of all the elements I use in almost all my designs, and start coloring and shaping. I have never, still do not, and perhaps never will, follow the Photoshop-to-code development workflow. If a client wants something exotic, like a horizontal navigation bar (with tabs!), I have a codebook for that too. Now, I tell my customers that the site I design for them is for use on that project only, or for whatever number of sites we agree upon. The combination of images and CSS code form a look which, I believe, is the intellectual property of either myself or my client (depending on the terms of the contract).

The question, then, is, what part of my design falls under the GPL? Does that mean that any one party can rip off an entire design I make, despite the inevitable embarassment at having me parade their lack of creativity for all to see? It’s so easy for me to reverse-engineer the look and feel of Jeffro 2.0 without looking at source codes for HTML and CSS, but I do not, because it is a professional embarassment to do so. What portion of his, or anyone’s, site can I “liberate?”

What is covered by copyright? I know that blocks of CSS code don’t get that benefit, and for good reason. Faux columns would never have caught on, for example. I don’t think that only the content presented by the blog is covered, though. The look and feel of a site are part of its identity, especially if the design is relatively unique.

What are the limits of the GPL when it comes to Themes, Premium Themes, and Blog Designs? This inquiring mind would like to know.

Update your WordPress installs, folks

One of my clients told me about an email they received from Technorati. This is about a security flaw in versions prior to 2.5. I have kept her running on a legacy 2.0.x branch because of some custom queries in the blogrolls that would totally break if it were merely upgraded.

I posted a topic on the support forums to see if this issue from Technorati has been addressed. I don’t think it will matter: Technorati will play it safe and I doubt anything that the WP devs tell ‘em will change their minds. Well and fine, but what a way to force an upgrade, eh?

If I ever designed your blog, or set up WordPress for you, and you still need my help upgrading, please drop me a line and I’ll try to get you in line as soon as everyone else ahead of you is done. I’m busy until late next week, unfortunately.

Changes afoot, follow-up

I’ve installed the Sandbox Theme on which I will redesign my site and get it up to speed for WP v2.3.

Yup. I give up. I’m going with a pre-packaged theme for the codebase and I’ll be redesiging my site. So much for keeping this for a year, ey? The old theme will be around for a little bit while I study Sandbox but something new will show up soon enough.

Something far, far less minimalistic.

UPDATE:  FORGET SANDBOX, I just did a diff between v2.2.2 and v2.3 of the pea-green “classic” look and it’s updated. MY GOD they update it! Damned sandbox stuff is much damned work…

Tag, signal, noise

With the release of WordPress version 2.3, tagging has been finally integrated into the core functionality of the platform.

Not a bad idea, if your blog generally has fewer words and more photos. I am well aware of its usefulness in flickr, fergodssakes, but tagging posts with the very same words that are used in the body text of said posts?

Maybe I’m not “web 2.0″ enough. Maybe, with my four years of blogging, I’m turning into a luddite. What exactly is the benefit of a tag on a text-based post? The fact that posts could be assigned to multiple categories was a pretty awesome thing, because topics do overlap. But tags?

BUT TAGS?

TAGS?

No doubt, I’ll have to get into it and understand it if I want to continue relating to the needs of the people for whom I maintain WordPress-based sites, but on my site? When I do upgrade to version 2.3, you can expect tags on photo-based posts.

Mkay?

In which I think about updating my theme…

I have had an itch to participate more into WordPress’ development path at least from a designer’s point of view; while my work over the past five months has made me less accessible than the Pope himself—as stated quite matter-of-factly by a friend tonight—I find the need to keep up to date.

Hey, when you’re generally designing on the web with a single blogging platform in mind, you really need to stay ahead of the curve. Besides, there is always Sandbox, which is also widgets-friendly, but updating my theme? Ugh. I thought it would be a pain in the ass, to the point that I didn’t even bother doing it, until I saw Hemmed, which from what I grok is Widget-friendly.

Well and good, because for the average Joe for whom I will design, there will be a need for them to update their sidebar content and with my time not being on my side, a Widget-friendly framework would be perfect for them to update their stuff.

Now that my personal time is a bit more available since my schedule is basically set to something quite regular, I should probably just play around and try something new with this Sandbox thing. It’ll serve my future customers better. I wonder what I’ll come up with next?

Strange software behavior does not a liar make.

I’ve been working with WordPress since it was b2. In that time I have seen a growing scourge of spam comments and all sorts of efforts to take sites down.

In my experience, the best spam plugin out there to hit the WordPress market is Spam Karma 2, which uses a heuristic, points-based system to assign a score to every comment that hits a site.

A comment approved is approved invisibly. You won’t even see it happen. When a comment is held for moderation, you will be told about it. When your comment has been detected as spam, you will be told that you will.

Now, there is an additional plugin for SK2 that revives the following features:

* An administrator must approve the comment (regardless of any matches below)
* Comment author must have a previously approved comment

Unless those checkboxes were checked as “on,” it will not force an SK2-approved comment into moderation.

This series of facts is brought to you today, by me, for all the people who would be quick to accuse one of my clients, Patterico, of being a dastardly comment-deleter.

That said, I can certainly state that these strange happenings are not a fault of the spam blocker alone, rather, a possible conflict with one or the other of the plugins that are installed involved in something else. Not that any of this matters to those who refuse to believe, but, I’m just letting it out there.

PHP Syntax Questions

I’ve been hacking around with the WordPress conditional tags and I’ve started to get the hang of it. However, I have never really known much of PHP programming and I don’t know jack about the syntax at all. I’ve spent too much time aping existing code’s syntax and this inquiring mind would like a hand-out of definitive info once and for all. I’ll be using a few shortcuts with syntax but I hope I can be understood anyway.

First, we have the conditional. Is there an important difference between the following two examples?

< ?php if (condition) : ?> [HTML Output] < ?php endif; ?>

< ?php if (condition) { ?> [HTML Output] < ?php } ?>

WordPress also has a conditional function to determine a page by ID or by slug. For example: < ?php is_page('about-the-author') ?> indicates code related only to a Page that has the slug of “about the author.” My sidebar file has a chain of “if” statements (only two are shown in the example):

< ?php if ((is_page('about-the-author')) { ?> [HTML Output] < ?php } if ((is_page('colophon')) { ?> [HTML Output] < ?php } ?>

I suppose the syntax is right since it works, but is it good syntax?