WordPress as a CMS: Making Your Content Unbreakable

It might surprise you how infrequently I build WordPress sites intended for actual blogging. More often, I’m building 15- or 20-page websites for businesses who need a bunch of static content displayed in a variety of ways. Some of this can be accomplished with plugins, but the rest must be inserted in the post-edit screen, making things messy for the client:

That’s one big drawback to using WordPress as a CMS: the lack of custom content types/groups, an area where Expression Engine really shines. EE’s custom field system allows developers to put restrictions on how clients insert content. This keeps the content clean, portable and relatively unbreakable because all the structural HTML is tucked away in the templates themselves, not in the post-edit screen.

In this sense, WordPress is not quite a “full-fledged” CMS and developers must create workarounds.

Custom Code

Here’s a page from a recent WordPress project:

spring creek

Notice the 6 thumbnails and excerpts in the left column. Any attempt by the client to add/edit that information could easily disrupt the HTML and potentially break the design:

spring creek

Even if the visual editor was turned on, the client wouldn’t be able to—or necessarily know how to—properly wrap those elements with the necessary HTML. And if the client tried to copy-paste content from another site, the visual editor would inherit that HTML, creating a jumble of inconsistent code.

Luckily in the case of Spring Creek, we ended up writing some special PHP mixed with custom fields and TimThumb to generate and format the content, but not every client can afford to pay for that kind of automated solution.

Content Chunks as “Pages”

Here’s another page from a recent project:

In the sidebar of each static page is a chunk of related content. One method we’ve tried in the past is breaking up sidebar content into separate Pages and using PHP to dynamically insert them wherever appropriate:

That keeps keeps the code cleaner, but unfortunately adds a layer of confusion for the client who must edit his Page content and Sidebar content in two different places.

The <!–nextpage–> Quicktag

So for VA Film, we decided another way to break the content into pieces without allowing the client access to any structural HTML was to deploy the nextpage function:

The sidebar content gets called from within the template, like this:


<div id="sidebar">
<?php if ($numpages > '1') { ?> <?php $temp_query = $wp_query; ?>
<?php query_posts('page_id='.$post->ID.'&page=2'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="entry"> 	<?php the_content(); ?> 	</div>
<?php endwhile; endif; ?> <?php $wp_query = $temp_query; ?>
<?php } ?>
</div>

It’s still a hack, but it allows the client to edit primary content and sidebar content in the same place without inserting any extra <div>s. There are other useful hacks of the <!–nextpage–> function that I’ll write about again soon.

Widgets

The last obvious method would be to create multiple widgetized regions in your theme. This practice is becoming more common in themes like Thematic.

Unfortunately, while the concept of “widgets” might make sense to bloggers, it doesn’t always make sense to the business owner. And depending on the content, it may still require some HTML knowledge, for example: floating an image, inserting a list, or requiring certain <div>s:

Questions

Obviously none of these solutions is perfect. Static content can be displayed in a number of ways—columns, quadrants, floats, lists—but the more ambitious it becomes, the less likely the client can edit it cleanly. In my experience, nothing compares to the rigid control offered by Expression Engine’s custom fields.

Final thoughts:

  • What other ways can we prevent clients from breaking layouts?
  • Should we design page content to be as simple and linear as possible to allow clients easier editability?
  • Should we insist the client learn a bit about HTML before handing over the site?
  • Should we write elegant hacks based strictly on how much money the client can spend?
  • For larger sites with variable page layouts, should we just opt for a true CMS like Expression Engine instead? Should we not compare apples to oranges?
  • http://themeshaper.com/ Ian Stewart

    This is one of the reasons I find Drupal so exciting. Like EE it’s really easy to create your own custom content types. But it is possible to create custom content types in WordPress.

  • http://wpcandy.com Dan Philibin

    Great post, Darren. I agree that ExpressionEngine does a much better job on more complex sites where multiple content areas are required. Custom fields just don’t cut it in WordPress; they aren’t made for big chunks of content.

    I’m still waiting for a plugin that lets you build your own write page – even if it’s just adding various text boxes. Maybe someone with a bit more PHP knowledge than I will eventually take a crack at it.

    I still believe that WordPress is primarily a blogging platform (despite the recent movement to transform it into a CMS). You can hack it up all you want for yourself, but in the end, it usually doesn’t simplify things any more for the client. This is definitely something to experiment with.

  • http://holymoleephoto.com Chris

    Flutter cms is an interesting solution.

  • http://holymoleephoto.com Chris

    @Ian wish Drupal was easier to use.

    I need to learn EE.

  • http://www.badcatdesign.com Kel

    Flutter has been frustrating for me – for as much as I want to love it, it’s still too quirky and reliant on other code. I’ve been making good headway with Henrik’s More Fields and even good stuff from WPgogo Custom Fields plugs.

    Agreed that EE (along with so many more CMSs) simply do what a CMS is expected to do. However, I’ve noticed that I’ve spent almost equal time adjusting the backend of EE for the client, to the same amount of time actually building the site and adding content. WP usually is so much quicker for me to turn stuff on/off so the client doesn’t inadvertantly “wander” into places that might wreak havoc.

    Cleaner still is Function’s Custom Write Panels post for the WP “do it yourselfer”.

  • Steven Jones

    I think that there should be a facility to add a new write page where you can choose custom fields and only make it available to one category.

    This way you could have a property listings site and it’s a clear distinction between adding a property and adding news. This means there doesn’t need to be 1000 different plugins to cater for all the different industries as you can create your own.

    Anyone know of any further development going on here?

  • http://www.standingprblog.com Marijean

    WordPress as CMS for the Spring Creek site was exactly the right solution. The extra time spent to customize and ensure that the client (or their marketing firm) doesn’t break the design was necessary, appreciated and worth every penny.

  • Alessandro

    Darren, I strongly recomend for similar cases the use of this plugin, its make things easer for developer and clients ;)

    • http://csk.gen.tr Ça?r?

      i think,too..

  • http://www.jessesutherland.com/ Jesse Sutherland

    Something I’ve thought a decent amount about too. I know that WordPress is a blogging system first, but it seems like they should recognize how many folks are using WordPress as a CMS and find some solutions to the problems that it presents.

    Looking forward to the new stable version of More Fields to allow for a bit more flexibility.

    I’m also on the cusp of looking into EE as an option for my clients, but haven’t quite jumped in yet. I think its quite strange that EE doesn’t have page hierarchy at all, and achieving it seems to get rid of user friendliness (like having to change the date on a post to reorder them) Will try it out soon.

  • Darren

    @ian: I can’t tell if WPFun’s solution is more or less trouble than setting everything up custom in EE. I guess the main difference is that it feels more like an experiment to do it in WP (esp for a quantity of paid projects) whereas with EE, it’s using the software as it’s meant to be used. I struggle over that argument a lot.

    @Dan, Kel, Chris: I’m going to play a bit with Flutter tomorrow. I like the solution from Function, but I need to get my head around it.

    @Steven: In the past, I’ve used post categories to make my own little non-blog applications, like this portfolio page. But if a client needs more than 2-3 pages with custom data like that, I’m likely to recommend EE before the contract is signed.

    @Marijean: I’m happy that you’re happy ;) You’re been an extremely cool and easy to client to work with, plus you give us cupcakes when we do a good job.

  • Darren

    @jesse and alessandro: thanks for the plugin recommendations.

    Regarding the pages and menus in EE, it’s puzzling that really obvious stuff requires plugins instead of being part of the core, whereas in WP they’re handled pretty elegantly — seems like it should be the other way around. More proof that there are no silver bullets in the CMS world yet.

  • http://blog.usability-idealist.de/ fwolf

    well well .. the Widget-based solutions looks much promising. The problem with HTML insertion could be avoided using a WYSIWYG-editor widget instead. Depending on the content, you could use said one or some simple input field, where no HTML input is required.

    Some examples:

    a) “About us-“page, introduction text – take the WYSIWYG widget
    b) Some link to someplace else – take the simple “input field” widget
    c) Need to enter a headline or title? “input field”
    d) News page entry? Do it the WYSIWYG way!

    Note: About half a year ago I worked with some folks who indeed use a CMS working the above described way. It’s used both for websites of big financial and churchly organisations.

    cu, w0lf.

  • http://chrisfrelin.com chris

    I tried hacking WordPress to use as a CMS for a couple sites, and it was way more work than it was worth. Then I tried CMS Made Simple, and I have never been happier. I cannot recommend it enough.

  • http://www.daltonrooney.com Dalton

    I’m surprised that you didn’t mention Custom Fields. I used them quite extensively on the StoryCorps website and it has worked very well. Between that and Improved Include Page, the whole site practically built itself! (I am totally exaggerating, but they are important tools)

    The Wefunction website seems to be down now, I would love to see what these Custom Write Panels are all about.

  • http://www.1stwebdesigner.com Dainis Graveris

    Awesome..hopefully in future maybe WordPress will help to use static content and make it easier to use as CMS..:) Lovely work.

  • http://www.cozmoslabs.com Cristi

    People have used wordpress as a CMS for a long time now, but creating a “special backend” (for those not so technical clients) with custom fields still is a big problem. There are a few plugins that help with that but the problem is far from resolved.

    Using EE is a solution for some clients, but not for most of them. Maybe I should have a look at Drupal one more time.

    Joomla will probably work as well but the back-end will scare any customer (even the brave ones! :) )

  • http://www.wppro.org/ Sunny

    @ Darren

    If you are dealing with 10 or so different page types, who not use custom pages (templates) and call different page template from the write page. Any time you include inline HTML you are bound to have issues with users tweaking or worse breaking it. I am guilty of using inline HTML tags on my site, but my theme is designed for such abuse and I am aware of what I am dealing with, but it is unfair to expect clients to do the same.

  • Darren

    fwolf: those are good suggestions. We haven’t traditionally pushed the widget solution on clients, but would consider it if we found a foolproof way to make it easy.

    @Cristi:

    Using EE is a solution for some clients, but not for most of them.

    Have your clients had bad experiences with EE?

    @Sonny:

    If you are dealing with 10 or so different page types, who not use custom pages (templates) and call different page template from the write page.

    If we received all the content upfront and could analyze how to lay it out and how to design custom templates accordingly, that might work fine. Unfortunately, the content never comes in time, and most clients don’t know how to design their own custom templates when the time comes. It’s the old chicken/egg debate.

  • Pingback: Creating Custom Content Type with Flutter Plugin — WPCandy — WordPress Themes, Plugins, Tips, and Tricks()

  • kaiser

    Hey, all of you!

    I can only recommend Ryans simple CMS for the Back-End. It disables everything a client (user class below administrator) won´t need. Pretty nice sollution. But what i´m still searching for, is a widget closer to EE-custom fields. Hard to describe. we are trying to implement 4 widget regions that can be attached to a static page. the template contains only navi+subnavigation and the header. everything below should be “widgetized” so even the client can rebuild the whole homepage via drag&drop and easy text-editing and selecting images from his library/mediathek via drag&drop….

    thanks if anyone answers on this and can provide some ideas.

  • http://mbavio.com.ar Martin Bavio
  • http://www.briandusablon.com Brian Dusablon

    Thanks for a great post. I’ve struggled with this in the past. WP has great potential with a few more good CMS plugins.

  • http://www.hypeelite.com/ Erika

    @Chris – I hated everything about CMS Made Simple. Sorry.

    WP – even in its simplicity can be complicated for clients. As fluent as we may be in XHTML, that learning curve is a you-know-what for the average client. And while we may sometimes take that for granted, I think that if we take the time to provide thorough explanations of how to get it just right, it will help them out. Some clients out there actually vet the major league CMS systems out there to decide which one works best for them, and I usually hear that drupal is “a crock,” joomla is “too much for too little,” and so on and so forth. So, when you have clients who want WP, I think you just have to keep in mind the abilities of the system and the abilities of the client when you design your mockups. Helps save stress and time and avoids disappointment, I think. LOL.

  • http://www.blogbymotti.com Motti

    Hi Darren,

    I am new to blogging and have a descent knowledge of XHTML and CSS (no PHP unfortunately).

    I just came across the magazine styles themes and LOVED them. I down loaded the the MImbo Magazine theme and I will start working on it shortly. I was wondering if you could confirm or correct my assumptions regarding these themes.

    I am a pro photographer and as you can see from my blog I now use it primarily for galleries posts. However, I always wanted to have more in my blog. For example, I create digital albums and wanted to create a flash gallery feature photos of different designs and have a full article explaining why they are a benefit to my client and have it withing my blog on a static page.

    The thing is, as blog go, it would be pushed downward as I keep posting. The magazine style blog allows for static content to be always visible in the main body page (as oppose to the sidebar), is it true?

    The ability to have such a large amount of static pages is great but is it possible to custom design them a bit so they don’t look exactly all the same?

    Is it also possible to have each post and each static page has it’s own page title like in a regular blog?

    By the way, just a bit about my blogging habits, I am the only author of my blog/site and will post about once every two weeks (if it makes a different for different style blogs)

    I really appreciate your reply. I will definatelly create a regular web site with galleries and clean interface but I really think that a blog (like the magazine style blog) can do so much more for me than just posting articles every now and then.

    Thank you,
    Motti

  • http://rubiqube.com Adrian | Rubiqube

    Thanks for sharing your experiences, Darren! You’ve inspired me to do the same. I am about to write some blog posts about some of my recent projects, where I used WordPress as CMS.

    I see more and more articles and tutorials about custom options in the Write Panel and even full blown admin panels for WP themes. This is great news for all of us WordPress geeks, because as soon as something new comes out, information starts to spread like a “virus”. Then people take that information and add their own knowledge. It’s this “snowball effect” that makes us develop better WP themes.

    Of course there’s a lot of really good stuff in commercial themes, so my advice to WP theme designer wannabes is to go and buy at least one of these themes. It’s probably the easiest way to pick a WP guru’s brain. ;)

  • Darren

    @erika: I think that if we take the time to provide thorough explanations of how to get it just right, it will help them out. – Yeah, I’m actually encouraged by how many clients these days are willing to learn a bit of code and other methods of making their pages more attractive. This was definitely not true just a few years ago, prior to projects like WordPress and Joomla becoming more mainstream.

    @motti: all the things you asked about are possible. I would recommend looking at the WP Codex.

    @adrian: I’m glad, too, that more developers are pushing the boundaries of WP.

    On the other hand, to be perfectly honest, my attention has been shifting elsewhere in the last few months, mainly toward tools like Expression Engine which allow more of what I’d consider “total control”.

    I don’t really know if the developers at Automattic even want to evolve the core software to act more like a CMS, or if it’s more focused/strategic to simply make it a great blog engine. I’d love to hear from Matt, Lloyd, et al, about this.

    As always, I’d say: use the right tool for the right job.

  • http://rubiqube.com Adrian | Rubiqube

    Yeah, I always said I would give EE a try at some point! WP has its limits indeed.

  • http://www.metaspring.com Ann Arbor Web Designer

    Love the design on Spring Greek.

  • http://ongster.com Rick O

    @darren: In our case, it’s not a good idea to prod the clients to learn even a little bit of HTML. Have you tried using other CMS for corporate sites that would be unbreakable? Joomla? Drupal?

  • http://www.thefunkhouse.co.uk slee

    you mention in the beginning of this article the 6 images could cause an issue which you are right but you could have created a page template. the client could then choose the template and use it on other pages as well. how you set it up to work would be up to you, you could do it so it is pulling in images from a certain category post or so that using the custom fields it add teh images in there.

  • Darren

    @Ann Arbor WD: thanks!

    @Rick: I’m not a fan of either Joomla or Drupal. EE best accomplishes what I need in terms of content control, but a lot of clients still ask for WP by name. WP also has the advantage of a large plugin community.

    @slee: that’s actually what we ended up doing. Instead of tossing all that content into the WYSIWYG editor, we created a custom template that pulled thumbnails and excerpts from the relevant subpages. Required a fair amount of coding, but the client could afford it and because it’s automatic/streamlined, it pays for itself.

  • http://www.thefunkhouse.co.uk slee

    it is longer maybe slightly a pain in the bum but for the client it is very worth it.
    I am interested in EE i have come across it a few times but it doesn’t seem to be very good when viewing the demo.

  • http://www.Studio98.com Custom Web Design

    I have used wordpress for a lot of clients and the main problem we run into is for the content on the home page. Because there are generally different sections of cotent, this is where any breaking occurs. On the inner pages, it’s pretty straight forward unless they have segmented sections.

    EE does seem like the best solution for it.

  • http://www.tezz2.com/penn-state-football-radio/ Willie

    i now only use wordpress because it very easy, flexible. But mysql query decision is not good( fulltext index none)

  • http://www.teamlalala.com/blog/ Lawrence Krubner

    Luckily in the case of Spring Creek, we ended up writing some special PHP mixed with custom fields and TimThumb to generate and format the content, but not every client can afford to pay for that kind of automated solution…. In my experience, nothing compares to the rigid control offered by Expression Engine’s custom fields.

    Was it cheaper to write “some special PHP mixed with custom fields” than it would have been to use Expression Engine?

    “Not every client can afford to pay for that kind of automated solution” – so this also excludes Expression Engine?

    So, is there the sense that WordPress is the least expensive CMS to use?

  • http://www.teamlalala.com/blog/ Lawrence Krubner

    What other ways can we prevent clients from breaking layouts?

    I believe that, eventually, this problem will be solved at the level of TinyMCE. I suspect we are 3 or 4 years away from that. I think eventually visual editors like TinyMCE and FCKEditor will have the same power as Dreamweaver has now. By that point, however, the Javascript libraries will be frighteningly bloated, so the future scenario I’m describing depends on faster computers, faster browsers, faster Javascript engines and faster download times (imagine sites with 8 or 9 megabytes of Javascript – I believe this is the future, even if it sounds freakish to us now).

    All of the current valid criticisms of Dreamweaver will apply to the future visual Javascript powered editors, and new complaints will emerge, I’m sure. But aside from all that, I believe that clients will eventually be empowered to design much more freely than they can now, with the Javascript automatically fixing the errors the clients accidentally create. Empty tags, tags that don’t close, incorrect nesting of tags — all this can be fixed automatically. This, I believe, is what will happen in the long run. In the short run, I’m less sure of the path to take.

  • Pingback: Closer To The Ideal » Blog Archive » How to keep clients from breaking sites?()

  • http://www.teamlalala.com/blog/ Lawrence Krubner

    I guess the main difference is that it feels more like an experiment to do it in WP

    Although, interestingly, people on the core WordPress team seem to think this is the way to do things. I once had Andy Skelton over at my house and asked him how he’d handle the redesign of one of the webs largest political sites (a project that was in discussion at the time) and he suggested roughly the approach you and others have discussed here – a mix of using custom fields and plugins that get the most out of categories. I asked him if maybe the project should be done using Joomla, but he felt strongly that WordPress was up to the task.

  • Darren

    Was it cheaper to write “some special PHP mixed with custom fields” than it would have been to use Expression Engine?

    Ultimately, yeah, because the PHP was written in a couple hours, vs. an additional 10 it might have taken to review the content and time-consumingly set up EE and the various custom fields to accomodate it. Clients who have a clear vision for their content and a tendency to be meticulous about how it gets displayed will often shell out extra to ensure it happens smoothly. EE seems to make them happy.

    This, I believe, is what will happen in the long run. In the short run, I’m less sure of the path to take.

    In the short run it’s probably best to stick with straight-forward/linear layouts that make it easy for the client to add content. They might not be visually dazzling, but they’ll present content in a clean, readable fashion.

    I asked him if maybe the project should be done using Joomla, but he felt strongly that WordPress was up to the task.

    If text-based news articles and archives are the end goal, then sure, WP can be remixed significantly to handle it. If your end goal are to have things like custom listings, tricky image galleries, etc, EE is a great choice and (to me) easier to scale later on.

  • kaiser

    hey everyone,

    when i´m looking at “framework-frameworks” like thematic- or hybrid-theme with loads of (completly widgetized) page-templates in combination with (for e.g. 960) css grid-systems, then i see the future much brighter. imagine text- or image-widgets placed freely on a grid in a easy-to use and reduced admin-interface by your client himself in every page he needs. no real need for custom fields anymore in such a case. we´re just one small step away.

    @ lawrence: i think what you describe is pretty much what we will have in some years.

    wish you best.

  • kaiser

    wonder if anyone of you tried this one instead of ryan´s plugin: http://wp-cms.com/our-wordpress-plugins/post-control-plugin/

  • kaiser
  • http://pods.uproot.us Matt

    Darren,

    Like you, I’m a huge fan of WordPress but found its lack of content types frustrating. I created a plugin called Pods that might be of some use to you. I enjoy using WordPress much more than other CMS tools (Drupal, EE), and felt like WordPress deserved a clean and intuitive way to add new types of content.

    http://pods.uproot.us/

    Let me know if it’s what you’re looking for.

  • Pingback: Ramblings › Just another WordPress weblog()

  • http://amesburyweb.com/ Randy

    I’ve been puzzling over this same of thing for some time now, and I was grateful to stumble on this post. I don’t think we should be teaching our clients HTML; for most of my clients, that’s just too much for them.

    Your use of the Next Page quicktag has got me thinking. What about custom quicktags added through a plugin? I have no experience adding a button to the WYSIWYG editor, but imagine the following steps.

    1. Click the “Layouts” button on the WYSIWYG editor.
    2. A popup appears with a dropdown; select “Three Columns”. Click OK.

    What if that loaded into the editor the following content?

    Column 1

    Column 2

    Column 3

    The WYSIWYG editor would need custom images to show in place of these. A formatting filter would need to break this up and add all the right HTML.

    You could have options for different chunks. Suppose you had an option button labeled “Sidebar” that created code like this:

    Sidebar Content

    A filter on the_content would need to know to strip out a specific set of chunks, but I think that could easily be done.

    I think a plugin like this that allowed you to add different codes and define the HTML from the Admin section would be excellent. (I imagine the interface would be similar to cforms; instead of creating forms, you would be defining a quicktag substitutions.)

  • http://www.teamlalala.com/blog/ Lawrence Krubner

    A filter on the_content would need to know to strip out a specific set of chunks, but I think that could easily be done.

    I think at that point you are creating such an artificial hack that the setup will become brittle – any little change later on can break the site. WordPress’s plugin system is relatively frail – add to many and they start to break, and they also break (way too easily) when you upgrade versions.

  • http://amesburyweb.com/ Randy

    (As expected, the code got mangled. Here’s another attempt: substitute square brackets for angle brackets.)

    [!–three-columns-start–]

    Column 1

    [!–column–]

    Column 2

    [!–column–]

    Column 3

    [!–three-columns-end–]

    … and …

    [!–sidebar-start–]

    Sidebar Content

    [!–sidebar-end–]

  • kaiser

    @Matt: Pods is amazing

    @the rest of you: when you´re not using pods i can strongly recommend using ‘custom field template’-plug in – maybe the easiest and best way to give your clients to options they need per page/article/else

    you can easily add what you need, name it the way, your client understands it and add the call for custom values in your wp-templates.

  • Darren

    @Randy: that would definitely be a nice option. I agree, the client should have to deal with minimal to no HTML.

    Similar to what you suggested, I have done themes in the past that contain 3-4 custom templates/layouts, each pre-populated with PHP functions. When creating new pages, I simply apply the template and enter the content. This requires me to create several pages and name them stuff like “about-us-column” — obviously, not a great solution.

    @Kaiser: agreed, it’s been a helpful plugin, though I’ve only used it once.

  • Pingback: 20 Expert Wordpress Tips for Pro-Developers | StylizedWeb.com()

  • kaiser

    @Martin Bavio: Pods and Flutter may do a good job. Thanks for the link. I´ll have to give both a try with the next project.

    @Darren: the chicken-egg debate is an easy thing. in evolution the dns changes and the next generation get´s born with the rearanged dns. so the animal who laid the egg with the chicken inside was no chicken and so the egg must have been first ;)

  • Pingback: Guía de recursos y tips para profesionales de Wordpress - elWebmaster.com()

  • http://www.ungoal.com Toure

    Hello there,
    I am trying to have different sidebar content per page. I have just want to be able to list my subpages of the current page in the sidebar only where the user will . I found some code, but it always list all the subpages.
    Any help will be appreciated.

    this is what I am looking for.
    page (a) will have in the sidebar only subpage (a)1, subpage(a)2 and page(b) will have in the sidebar only subpage(b)2, subpage(b)2
    Thanks for any help

  • kaiser

    @Toure: why don´t you give the wp-forum a try? this is more a discussion then a help-thread.

    @Matt: The ‘only’ thing i would like to see with “pods” (which i still think is the strongest, most comfortable, best, whatever custom field plugin) is extra-fields for users, so it would catch the whole spectrum of custom-content needs.

    For the rest of you: Pods makes wp ultra strong and maybe the best cms out there… don´t know why that less people are using it. no need to add tutorials for clients. you simply set up a write-panel for whatever you need and make the content client-save. i think pods ends every discussion about wp as a rock solid cms. (now go and praise pods ;)

  • http://www.sinemaizlex.com sinema izle

    thanks so much great article.

  • http://seekingalpha.ru Mark

    I tried hacking WordPress to use as a CMS for a couple sites, and it was way more work than it was worth. Then I tried CMS Made Simple, and I have never been happier. I cannot recommend it enough.

  • http://bluemandala.com Deryk Wenaus

    I just want to second the call out to More Fields. It seems to have gotten a number of quiet updates recently, making it more stable and quite usable. To solve your above problem, use more fields to create a custom sidebar area and put the content in there. more fields goes much further, allowing you to create new write panels and list them along side pages and posts – events for example.

  • http://www.papertracer.com/ SaaSonhand

    I’m a wordpress lover, i think when it comes to CMS they have one of the best platform.

  • Pingback: 101 Techniques for a Powerful CMS using WordPress | Noupe()

  • Pingback: WordPress-CMS Hacks and Tricks | Why? Nowhy! DFdou's Blog()

  • Pingback: Wordpress Blog Services - 101 Techniques for a Powerful CMS using WordPress()

  • http://www.idcdi.org 空间便宜坊

    Hello !I love this theme!
    thank you

  • Nate

    Thanks for some great ideas to compensate for the fact that a WYSIWYG Text Widget still doesn’t exist in the WP core. You put together a great list of alternative options.

    For some reason we had some trouble implementing the quicktag solution in the sidebar of a client site. But we were able to fix it by adding one call at the top.

    ‘1’) { ?>
    ID . ‘&page=2′); ?>

  • Pingback: 101 Techniques for a Powerful CMS using WordPress()

  • http://www.vizioninteractive.com/ Scott Kingsley Clark

    You must have not seen Pods (http://pods.uproot.us/) yet, because if you had, you’d be able to conquer the world of WordPress using Pods as your CMS plugin. No joke, thousands of people have already conquered theirs! :-)

  • Pingback: 20 Expert Wordpress Tips for Pro-Developers | JVC()

  • Pingback: 101 Techniques for a Powerful CMS using WordPress | Cosa Nuestra Tropical Lounge()

  • http://www.hamroawaaz.com Rahul – Web Guru

    I do agree with most other. WordPress is quite a powerful CMS tool, but if you’ve got a loads and loads of content then you’d better look for better options, maybe in the near future some pluggins might just pop up which might be suitable for bigger jobs.

  • kaiser

    Ever seen something like this before: http://wordpress.org/extend/themes/constructor ?

  • http://www.alancrissey.com Alan

    Has anyone tried ModX? I’ve used EE in the past and ModX – from the tutorial of it I went through a while back – seemed very comparable, and it was free. I actually thought it was easier to use than EE, while still using some similar concepts.

    I’ve been using WordPress as a CMS for about six months now and I have worked through these same issues. The only reason I’ve stuck with it is the plugins, honestly. And because I’m familiar with it. I’m nervous to jump into a project on a platform I’m not very knowledgeable on.

  • kunal

    I am a bit late to this fantastic conversation but thought I would try my luck anyway.

    I run an online community (using WPMU + Buddypress) for startup companies in my area. I want to give the ability to my members to create company profile pages with information like company name, logo, # of employees etc. (similar to but simpler than what crunchbase does eg http://www.crunchbase.com/company/advestigo)

    I was wondering if Darren or the other experts over here could suggest a solution for this using wordpress (so that I can integrate with the members database better). I found the flutter plugin (infact I came here looking for more info on flutter) but was wondering if there are other better alternatives that anyone can suggest for my particular application.

  • http://www.vizioninteractive.com/ Scott Kingsley Clark

    @kunal

    Have you checked out the Pods CMS plugin? http://pods.uproot.us/

    • http://www.facebook.com/afuye.yakubu Afuye Adegboyega Yakubu

      I like the Mimbo theme. but am having a problem on how to put logo instead of the site Title name.

  • kunal

    Scott,

    Thanks for the suggestion. I had actually not noticed these newer comments before (I didn’t realize there were more than 1 page of comments).

    Hmm, looks like a lot of people like Pods. I have spent the last hour or so playing with Flutter and I am confused already (with the whole modules/layouts thing). Ill go give pods a try before I put in too much time into flutter.

    Do you think I could use pods to accomplish what I am trying to do in my previous comment?

    How is the support and community? I recently started using buddypress and even though I am an ameteur developer, I was able to implement and customize it pretty well with the help of the great support provided by the developers and the community.

  • http://www.vizioninteractive.com/ Scott Kingsley Clark

    @kunal

    The community is booming, we’re launching a new website to keep up with the growth. The new website will house the much needed organization to take Pods to the next level. We do have frequent visitors to our Forum who ask / answer questions so feel free to start there.

    I’m also available for Pods Feature Tours in which I call you up and share my screen to show you how everything works. Let me know if you’re interested in that – contact me at http://www.scottkclark.com

  • http://reformationstudios.com Jedidiah Hurt

    I know this is an aged post, but I found it by Googling so thought other might find this useful.

    Silverstripe (silverstripe.com) and MODx (modxcms.com) are two open source CMS solution that provide easy templating for custom fields.

  • Pingback: 101 Techniques for a Powerful CMS using WordPress « Temas e Dicas para Wordpress()

  • Pingback: Creating Custom WordPress Widgets | Darren Hoyt Dot Com()

  • http://www.inspyremedia.com Rebecca

    Hi Darren,
    Thanks for the great article — it definitely peaked my interest in exploring EE. In the meantime though, I’m stuck with WordPress for my client’s site and I’m now researching the best way to include multiple editable content areas on a page.

    If you’re a non-programmer / designer type like myself (and a PHP newbie) WordPress still seems like a pretty good CMS option, since it’s pretty easy to master without a lot of programming knowledge.

    That said, I’m now stuck because i don’t know enough PHP and I’m hoping someone can help.

    You said “One method we’ve tried in the past is breaking up sidebar content into separate Pages and using PHP to dynamically insert them wherever appropriate”.

    That method seems like the best option for me at this point, but I can’t figure out how to code the php for that solution. I’ve researched the issue for several days and still can’t find any code that indicates how one pull in content from two different pages. Instead, everything I’ve found shows how you could include severals post on a page, but not several pages.

    Would you be willing to share how you include the content from two separate pages on different areas of your page? S

  • Pingback: 101 Techniques for a Powerful CMS using WordPress « WPhub.biz()

  • http://ps-ik.gunadarma.ac.id/ dhan

    thank for that information, that’s nice article

  • Pingback: Content Experience Manager » Welcome to our WordPress Social Networking site!()

  • Pingback: The Comprehensive Guide for a Powerful CMS using WordPress – Part one: 101 Techniques for a Powerful CMS using WordPress | Web Site Designers()

  • Jim Oliver

    Hi there,

    I’ve just stumbled across this post in a search for some guidance. I am a relative beginner to WordPress theming, but I am currently setting up a site for my girlfriend to showcase her design work. I wonder if you might provide your thoughts around this conundrum?

    I would like the majority of the site to be ‘static’ content, with some elements (pages) maintained in a dynamic fashion – namely a gallery and blog page. After first putting the site together in HTML, when it came to recreating it with WordPress I was faced with the dilemma of how to add the ‘static’ sections of the site.

    It feels like I have two options:

    1.) Add the static content within WordPress. My nervousness, which I believe is also the theme of your post, is that this content could (completely by accident) be messed up, when the client (aka my girlfriend), is maintaining the site.

    2.) ‘Hard Code’ the static content. Probably not the correct terminology, but I’m thinking it is possible to actually write the code into a specific page template and let WordPress call on that template only for that page. I’m not sure how this works yet, but does it sound viable?

    The latter feels like a more solid, unbreakable approach, but I’m not quite sure how you do it yet – I guess I just need to suss out custom page templates.

    Thoughts?

    Jim.

    • http://reformationstudios.com Jedidiah Hurt

      Hey Jim,

      I would recommend your first solution: create the static content using WordPress’s built in support for pages.

      You can prevent your girlfriend (or any other future users) from editing the pages you create by making them an Author. Authors can only edit pages/posts that they created. Check out the Codex on ‘Roles and Capabilities': http://codex.wordpress.org/Roles_and_Capabilities

      • Jim Oliver

        Thanks for the reply Jedidiah,

        It’s making more sense now, but I’ve just remembered what prompted me to ask in the first place! I copied my code across, but it doesn’t like the PHP parts – I used PHP to call the root directory, so I could make pseudo relative image links. Again, probably not the correct terminology, but essentially it fills in the root directory of the theme, so I can choose the image from there.

        I guess this could be easily changed by choosing the exact URLs to the images. How do people normally work around these PHP limitations when putting together more complex static arrangements!?

        Jim.

        • http://reformationstudios.com Jedidiah Hurt

          The content that one places in WordPress pages isn’t evaluated by PHP; it would present security concerns and likely performance issues. I’m sure you could find a plugin that would enable the feature, but it’s not conventional.

          The convention seems to be thus: if there’s an image that you’d like to use in one (or even a handful) of pages, but not all, just use WordPress’s support for uploading and embedding images (through the ‘Add Media’ button). If you’re working with an image that needs to go on every page (such as a header or footer image) then it should be hard coded in your PHP template files.

  • http://kreditenkalkulator.com/ Kredit

    @Toure – Just use Custom Widget plugin for WP..
    And thanks to the autor for this article: many ideas Yuo give here!

  • Pingback: 100+ Free Creative Style Wordpress for collection | AliMunandar.com()

  • http://kopyright.ru Copywriter

    Thank for that information, that’s nice article for copywriter.

  • Pingback: Creating Custom WordPress Widgets - 5 Hour Developer()

  • http://www.thetechface.com vivekmishra

    i need download link for this theme where i will get it…

  • Acee Baba

    Really great article i have same question all above and i keep thinking about that what should be the right that don’t pull my client in trouble.
    I know Custom Theme options page really help but it’s not really useful for each and every thing also it’s not handy to use for every client as it take too much time.
    Clients now a days don’t wish to spend much for WP theme they can find people who just customize ready made themes and charge a little in this situation how can i charge fair price for my hard work even clients don’t understand whats real difference????