WordPress as CMS: the best articles/howtos? (10 posts)

  1. fredriley
    Posted 5 years ago #

    Although a seasoned WordPress blogger, this is my first post to the Codex so please be gentle with me. I'm after using WP as a CMS for some existing sites (eg EUROCALL). There are loads of articles on this which all seem to be partial and/or dated, and many require fiddling about in PHP code. Whilst I'm an experienced web coder (2 decades) and have used PHP for the last 7 years, I'm reluctant to get into hacking the WP code for all sorts of reasons, such as version upgrading problems, damaging the code, opening up security holes, but mostly out of simplicity. The reason I'm after a CMS is to simplify administration and configuration of my sites, and allow my users to edit their own content.

    I'm happy to hack XHTML and CSS, and would expect to do this with any CMS as I want to replicate existing site page designs.

    So my question is: what are the best 'howto' articles for configuring a local WP installation as a CMS to run a 'traditional' website?

    I would look in the FAQ for this but the content-type must be wrong as I'm being prompted to download a binary by my browser.

    I've read through quite a few articles and have made a tentative start on localhost (Mac), but it would be useful to have a step-by-step 'howto' to follow. I'd even spend money on a recommended book. The best starting point so far is Tara's article but that's lacking in detail and suffers from linkrot.

    I know that there are lots of other CMSs out there, and believe me, I have kissed a lot of frogs over the last year without even coming close to a princess. I've always liked WP, and it's robust and secure, so would be prepared to go the extra mile to get it working.

    TIA for any tips/links.


  2. Mike Schinkel
    Posted 5 years ago #

    Hi Fred,

    What specifically do you want? "CMS" covers lots of territory. Here are some links that might help:

    Hope this helps.


  3. fredriley
    Posted 5 years ago #

    That's a fair question, Mike, and I'd not wanted to be too specific in my original post for the sake of brevity. In the short term, I'm after replicating existing small static sites which I maintain (eg EUROCALL) as database-backed CMSs, primarily to enable authenticated users to edit specific content - at the moment all content comes through me which is a major bottleneck. A database-driven site would also allow goodies such as versioning, output in mobile/disability-friendly forms, automatic news feed generation, ease of backup and much more.

    I'm looking for a CMS that's:

    1. lightweight (not a monster like Drupal or Joomla)
    2. has a shallow learning curve (ditto)
    3. is easy to create templates in - I want to design my own site interface, rather than choosing from pre-existing skins/templates/themes
    4. is PHP and mySQL-based (my areas of web devt expertise)
    5. is Open Source
    6. runs in a normal user account, not needing root privileges

    I've various other reqs but these are the main ones. WordPress fits all of the above, I hope, plus it's the first test installation that's gone smoothly and the user messages make me chuckle ("all right sparky!"). WP also has a massive user base and is very mature, and as a WP blogger I know that the control panel is intuitive yet powerful. I know also that there are stacks of traditional websites out there created in WP as I've seen them, and plainly a designer has free reign without being straitjacketed into themes.

    So what I'm looking for is a good practical starting point for using WP as a CMS. A book would be fine, if one exists.



  4. Mike Schinkel
    Posted 5 years ago #

    I guess I should have been more specific in my question. I took as an assumption that you were starting with WordPress. The question really was "What specifically do want to to do with it as a CMS?"

    I'm trying to understand your specific requirements where you are running into challenges. "How to use WordPress as a CMS" is just too broad of a question to give a really good answer for otherwise start with those links I gave you.

  5. fredriley
    Posted 5 years ago #

    Mike, I've got to emphasise that I'm not after yourself or anyone else on these fora giving me custom instructions on how to implement a specific site, but rather I'm after up-to-date howto documentation on the process of doing so with WP. Although I've got a specific site in mind at the moment, I'd like to use whatever CMS I choose for other sites with very different requirements and clients.

    "What specifically do want to to do with it as a CMS?"

    Replicate and expand on features already in my sites, and enable colleagues to update their own content in limited areas. Features I'm looking for include:

    • member's area
      A restricted area with selected goodies for paid-up organisation members, with the ability to get password reminders, edit profiles, contribute to an organisational blog.
    • events calendar, default listing by title in date order, options to list by location/month
    • news database with RSS feed
    • dynamic menu highlighting
    • different templates for site sections (maybe as sub-templates from a master site template)
    • complete design control over the site appearance via CSS2 (CSS3 when I get round to learning it)
    • searchable/browsable links repository with Dublin Core-compliant metadata

    I could go on, but I've not written a full spec, as I would do if preparing a site for a client. Mind you, what I'm writing here is becoming a spec of sorts.

    I've not firmly decided on WordPress as a CMS, as although it plainly can act as such (the existence of non-blog WP sites attests to that) the articles I've seen require you to do one or more of the following:

    • hack the PHP code
    • create your own theme
    • adapt an existing theme/skin (eg Semiologic)
    • install and configure various plugins

    As explained in my first post, although a PHP coder I really do not want to get into code hacking, not least because, if I do change scripts, I'll likely find it difficult to upgrade WP versions without overwriting my hacks and having to redo them.

    The main article I've been using is on the Graphic Design blog which has lots of links to other articles, some of which have suffered linkrot. I've looked at the Semiologic theme but the documentation is patchy. I'm going to try the Constructor theme to see if that gives me design freedom. I've looked at the following articles in detail:

    1. How to create a WordPress theme
    2. WordPress CMS
    3. WordPress as CMS (Stanford)

    (1) is limited to themes and although helpful doesn't address some of my reqs, plus it requires PHP hacking. (2) is still in rough draft and is patchy and lacking detail, but does have links to other articles to follow up. (3) requires code hacking, and discouragingly the developed site gives a database error.

    In a way, WP is already a CMS, for the production of specialised websites, ie blogs, so it shouldn't take too much bother to wrangle it into a platform to produce more general sites. It's just knowing where to start.

    This is all getting a bit detailed. Surely there must be a book on this somewhere? The important thing is that I'm looking to be more efficient in development and save time. I've already rejected CMSs like Joomla, Drupal, typo3 and others, because they require serious time investment to learn, which is fine if you're having to churn out highly-featured sites regularly under time pressure as the investment is worthwhile, but that's not the situation I'm in - the sites I manage I do in my spare time outside my day job.



  6. Mike Schinkel
    Posted 5 years ago #

    The reason I push for requirements is the term "CMS" is a lot like the term "Vehicle." You say to me "I need a vehicle" and I say "Here's a Honda Accord." And you reply; but "I wanted a motorcycle." Or "I wanted a dump truck."

    I've spent the last six months building CMS functionality on top of WordPress and I find that everyone has a different opinion of what CMS means to them.

    There isn't a book for it yet because it's still evolving in the CMS space. I believe WordPress is the best base for CMS out there, but some things are still too hard.

    And one of the reasons I push you for requirements is not just to help you but to gain a list of requirements that I can use for future plugins I plan to release; you are by no means the first person I've asked to detailed CMS requirements.

    As for your list, FYI this is not the same list of requirements my clients have had for CMS; their requirements have been very different:

    • member's area - There are numerous membership pluginsfor this, most of them commercial.
    • events calendar - There are lots of plugins for this.
    • news database with RSS feed - Sounds like blog posts to me?
    • dynamic menu highlighting - Don't know what this means?
    • different templates for site sections - Custom Post Types are used for this and can have their own templates.
    • complete design control over the site appearance via CSS2 - WordPress allows you to build your theme with any HTML you want so find a framework that supports full design control (960 grid system) and use it for a theme. Or find a theme that supports that such a framework. Or build it yourself; the front-end is usually where people want the most control so WordPress gives it.
    • searchable/browsable links repository with Dublin Core-compliant metadata - You got me there. AFAIK that would have to be built into WordPress with a plugin.

    BTW, that is almost never a need to change a core script; I have never done it and I've done some pretty complex stuff with WordPress. WordPress has probably the most extensible set of hooks for extending core that I've every seen on a CMS, and most changes are just a few lines of PHP code in a plugin or even in your theme's functions.php file.

    Hope this helps.


  7. fredriley
    Posted 5 years ago #

    Thanks, Mike, that is very helpful. By "dynamic menu highlighting" I mean a nav system where the current page is highlighted to indicate the user's current position - this is just a fancy name for a common feature, though one that's surprisingly tricky to build into a multi-layer site.

    For a member's area, I'm not after anything as posh as those you've linked to, though they may well come in useful in the future. On the EUROCALL site there's a members area which I've implemented with a nice login script, for paid-up members of the organisation who are given a self-registration URL. Nothing fancy.

    What will be interesting will be how easy, or not, it is to integrate my custom PHP scripts into a WP site. The link repository I mentioned is one example - this is a PHP/mySQL utility I'm currently developing using the CodeIgniter PHP framework (very good, btw). From what you write it looks like I'd need to wrangle this into a 'plugin'.

    "BTW, that is almost never a need to change a core script; I have never done it and I've done some pretty complex stuff with WordPress. "

    That is reassuring to know - thanks.

    "The reason I push for requirements is the term "CMS" is a lot like the term "Vehicle." You say to me "I need a vehicle" and I say "Here's a Honda Accord." And you reply; but "I wanted a motorcycle." Or "I wanted a dump truck." "

    Arf! :-D

    That's a fair point. I think that the problem with the monster CMSs like Joomla and Drupal is that they try to be everything from a moped to a sports car to an earth mover, but by being so all-purpose they have to include shedloads of functions/modules/plugins such that they're slow and cumbersome. Sadly, as a user you can often tell sites built with such behemoths because they're so blasted slow.

    Ok, enough wibbling - time to get developing :)



  8. Mike Schinkel
    Posted 5 years ago #

    How complex are your menus? I'm currently doing what you describe on a client's site but I think it would be dependent on your menu system and beyond a first level menu I'm not sure I can see a standard way to do it. Can you show some example sites that do what you want?

    You may want to look at the Members plugin then:


    It basically allow you to set roles and add capabilities to roles but you have to write IF statement code to protect the parts of the system that require capabilities. Note that WordPress is a (light) code focused CMS whereas something like Drupal is more on an admin focused CMS. I think WordPress works better in most cases than Drupal where someone coding is an option.

    Integrating custom PHP code into WordPress can be exceedingly simple; from creating items to embed to allowing WordPress to turn over full control; it all depends on your specifics. BTW, the best way to learn about those specifics IMO is to ask questions here: http://wordpress.stackexchange.com.

    A "plugin" is just PHP code that is packaged with a comment header that specifies it's name and other optional information and is stored in the plugin directory. This allows the admin user to activate or deactivate the plugin and activated plugins are all loaded before your theme code runs. People make far more out of plugins than they are. You can put most code in a plugin or in your theme's function.php file with the only caveat is a small number of hooks run after the plugins are loaded but before the theme's functions.php is loaded so if you need those hooks you have to do it in a plugin. A plugin is more about packaging of code and really there's no special coding required unless you are trying to hook specifics of WordPress in which case you'd have to do that even in your theme.

    Speaking of Drupal, here's my take on WordPress vs. Drupal:


  9. fredriley
    Posted 5 years ago #

    Thanks again for the tips, Mike. I'd no idea that the WP Answers exchange existed else I'd likely have posted there. There's no link to it on the Codex home page I don't think, though that's a busy place so maybe I've missed it. I'll bookmark it and link to the RSS feed.

    On site menus, 'dynamic menu highlighting' isn't itself important if there's another way of showing the user where s/he is, such as breadcrumbs. Implementing menu highlighting in a dynamic sense is tricky once you go past the top level, so this isn't a 'deal-breaker', as they say. The important point is that the user always knows where s/he is in a site and how to get back up the hierarchy, and I'm sure that WP has mechanisms for that once I get to know it.

    Nice polemic on Drupal, which opened my eyes to a few things, and raised eyebrows more than a few times. Drupal (and indeed Joomla) sites tend to have a similar look, and are deadly slow, and thanks to you I finally know why:

    Drupal runs upwards of 100 SQL queries for every page load because of its site architecture.

    My eyebrows nearly leapt off my head at that. The excellent OpenLearn site is Drupal-based without being Drupal-looking but took a fair bit of wrangling to get it in the form that the developers wanted, so I was told. A good result in the end, but I hate having to fight with a product to do what I want, which is why WP appeals to me as it looks to be pretty easy to create the look and feel that I want, not what the system wants.

    Your point about community support is well made. So many OS products I've tested have either a small community, or one which doesn't suffer fools gladly such that you have to RTFM, RTFFAQ, search the fora, and only then are you allowed to post without being slapped down. When that happens I just quietly go walkies. That's very much not the case with WP, and the amount and quality of documentation for developers is the dog's bollocks, as we say this side of the Pond.

    The follow-up discussion was pretty interesting, too.

    Anyway, I'm sold :o)



  10. Mike Schinkel
    Posted 5 years ago #

    I don't think the WordPress team is exactly supportive of WordPress Answers. When I announced it on the wp-hackers list their reaction was not positive; they wanted everything to be a part of WordPress.org. So regardless of the fact that it's incredibly helpful for WordPress users, much more so than the support forums IMO, I don't think they want to acknowledge it. Of course, that's just my outsiders view looking in.

    The menus you describe can easily be coded into a theme assuming you get the logic down. The logic of course can be complex but I think you'd have to do that with any system.

    I guess my post was a polemic but I'm just sick of hearing how Drupal is better when in most cases it is far from it. I did my best to detail the actual specific problems rather than just rant though. And I've had experience with both and picked Drupal over WordPress at first so I think I can speak with authority.

    BTW, if you want to send me your email address via my about.me page I'll let you in on something you might find interesting.


Topic Closed

This topic has been closed to new replies.

About this Topic