Support » Everything else WordPress » WordPress as CMS: a trek

  • I think my two-year search for a good PHP-based CMS is over. I know it wasn’t really meant to be a general-purpose CMS, but I am in the process of press-ganging WordPress into being one.
    I am in charge of a website for my local historical society. From the beginning I have wanted to set it up so that any of the members could add or edit content from a browser. Every time I sat down to write the application myself, I was soon overwhelmed by the effort involved (I am only a part-time, casual coder). Meanwhile, every CMS package I reviewed had unacceptable problems. WordPress, which I only discovered over the weekend, seems to fill the bill marvelously.
    But some changes are in order (natch).
    Wordpress, being a blogger, is built around the post, and posts are organized into categories. What I intend to do is change the metaphor slightly, to sections and articles. I have already started playing with this on my experimental personal site, .
    Here are the two other minor changes I need to make to WordPress to enable this changeover:
    1. I need a way to remove the dates for posts in most categories, though not the ‘General’ category (which I would rename to ‘News’ anyway). This is easy, through a little function in my-hacks.php.
    2. I need a way to define “fake” categories, so that they can include some static PHP (like a PHP form) instead of posts. This is harder. I have been noodling around on paper with some approaches, but if anyone has already gone down this path I would love to hear about it.
    If anyone has anything else to add or suggest about this project, this is the thread to sound off.

Viewing 6 replies - 1 through 6 (of 6 total)
  • I might have something like that in about a few days (maybe tomorrow). 🙂 Couldn’t find any available hacks that did it for me, so I’m working on one now. It’s a bit complicated though, taking the Content Management away from the CMS…

    You may want to look into the category_description field.

    allusion was also working on an independent cms system! 🙂
    but he is not sure, it would be open source 😛

    Okay, I just got out of the shower (I do all my best thinking in the shower).
    I think where I’m headed is toward the notion of a ‘special’ category. The ‘special’ category does not behave like normal categories.
    I have already posted the example of the category which needs to hold static HTML or PHP. While I was in the shower I came up with a much more ambitious requirement, a kind of post called an event. This is to support dynamic event calendars (again, I am working on the website for a non-profit, and keeping an event calendar updated is one of the biggest challenges).
    This is an application I have been working on for the last week. Since the historical society’s current hosting provider doesn’t support MySQL (I am going to get them to switch), my initial approach was to use a CSV flat file. The idea is that you edit a list of events which, when presented to the website user, is sorted by date and does not show events for dates that have already passed. Simple, but important.
    So in the shower I thought about an events calendar for WordPress. At first I thought about using a ‘special’ category to allow my little PHP hack to be run. But then it occurred to me there’s already a database and admin interface. Why not use that?
    So I thought about making an event a ‘special’ variety of a post. It would have all the attributes of a post, plus a start date, an end date (optional), and optional start and end times.
    This could be integrated into the database either by adding fields to the wp_posts table, or by making a new table called wp_events. I don’t know which breaks the system the least.
    Further integration can be achieved by allowing the events to be posted and edited using the existing admin interface (maybe a radio button on the Post screen, or perhaps a new tab for Post Event).
    So when a user clicks on the Events category, he sees a list of events in chronological order. Any events which have already happened are not shown.
    When the admin does the same thing, she can see all the events, and can edit or delete them as necessary (editing old events is useful when you have annual events, so all you need to do for next year’s event is edit the dates on last year’s event).
    I think this should be fairly straightforward to implement. The question I have is what are the better approaches to keep it clean and separate from the main code train, so it can be easily integrated as a hack, in a way that is compatible with other hacks (such as backing up, etc).

    For an events calendar the phpicalendar hack, phpMyCalendar, may be easier to implement. It’s a normal looking calendar you can update from the net, and it spits out RSS you can include on your homepage

    actually, I had the name wrong. The calendar software is phpMyCal and it’s available here:

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘WordPress as CMS: a trek’ is closed to new replies.