6 Essential Textpattern Plugins

Textpattern logo
The Textpattern logo

One of the best features of the Textpattern CMS is its simple and lightweight core; however, as a result you’ll more than likely find yourself needing to install some plugins to get it working as you want. There are many plugins out there, but I want to share a few that in my opinion are essential to any Textpattern build.


Most websites will have a contact page and many will use/require a contact form, for those sites there’s zem_contact_reborn.

zem_contact_reborn provides flexible contact forms using accessible form layouts. As well as fields for name, email address and contact message the plugin will let you create arbitary text fields, drop-downs and more. It even comes with an API for extending the plugin.


Textpattern comes with ten custom fields for use with articles. You can define these in the Advanced Preferences and then use them on the Write panel. However, its implementation is pretty basic. glz_custom_fields builds on this feature providing support for unlimited custom fields.

glz_custom_fields goes beyond letting you create as many fields as you like; it will also let you define the type of custom field, position and default values. For me, this is where the true value of the plugin comes. The plugin adds the ability to create new textareas, drop-downs, date and time pickers, and much more.

This plugin used to be paid-for but its developer Gerhard Lazu has since made it free. It is so good though that I happily paid for it back when it wasn’t free and have found myself using it on every site since.

It has become such a popular plugin that it would seem that some of its functionality is going to be making its way into a future release of Textpattern.


As great as Textile is many users want a WYSIWYG editor to help them write their content. While other CMSs come with some form of editor built-in Textpattern has kept things pretty basic so far. The options for WYSIWYG plugins are pretty non-existent, but thankfully there’s hak_tinymce which has been around since 2005.

hak_tinymce adds the popular TinyMCE WYSIWYG editor to the article panel. With the plugin installed you can still use Textile if you want by selecting ‘Use Textile’ for the article markup under ‘Advanced Options’ on the article Write panel. It also integrates with Textpattern’s images using the custom TXPImage TinyMCE plugin.


Out-of-the-box Textpattern lets you put each article into two categories in addition to a section. This for me has always struck me as somewhat quirky. Assigning one category makes sense and so does an unlimited number of categories, but the choice of two always seemed a little random. Perhaps someone can enlighten me, but still I have always found it a bit useless.

On sites I’ve setup I’ve usually wanted to either restrict categorisation to one category per article, or an unlimited number. The latter being the most common case and that’s what rss_unlimited_categories adds to Textpattern.

Unfortunately the plugin is no longer supported by its original developer, but thankfully other members of the Textpattern community have kept it going. The latest contributions/releases can be found on the plugin’s forum thread. (If anyone knows of a good alternative to this plugin please leave a comment below.)


Despite what its name may imply adi_menu does several things, and that’s why it’s one of my essential plugins. It adds the concept of section hierarchy, section menus and a breadcrumb trail.

Section hierarchy lets you create subsections (a feature currently lacking in Textpattern, but one that I’ve found many seeking). Once installed you can start assigning parents to sections, much like you would with categories.

Another major feature of the plugin is the section menu. You can order, exclude and redirect sections as well as override the section name for its menu item. The plugin then provides a Textpattern tag for displaying the menu and submenus (it’s how I drive the navigation on this site).

adi_menu also provides a tag for outputting a breadcrumb trail based on the menu.


This last one is perhaps a little cheeky as it is one of my own, but it helps with the SEO of a site which in my opinion is pretty essential. arc_meta will allow you to tweak the format of the meta title, include meta descriptions and robots, and add meta data for social networks like Facebook and Twitter.

arc_meta doesn’t just work for articles, but also sections and categories.

If you want to get your content found on search engines or more noticed on social networks then you should definitely check it out.

What Are Your Essential Plugins?

Those are my six essential plugins for Textpattern, the ones I’ve used time-and-time again, but what are yours? What plugins do you install each time you start work on a new site? Leave a comment below and share your favourites.

Related Content

Published on


  1. Belcanex |

    Can’t live without rss_auto_excerpt, soo_if_frontpage, jmd_sitemap, lam_image_uploader! Also smd_browseby is helpful.

  2. Andy |

    rss_auto_excerpt very nearly made it on to the list.

  3. Stef Dawson |

    Nice list, thanks. My top 6 (cough 7), in no particular order:

    * zem_contact_reborn for all the reasons you stated. The next version also supports HTML 5, Textpacks and more advanced plugin interaction to give people greater control over how to deliver emails to customers.
    * adi_gps for cool interaction with URL parameters. Used primarily for filtering, slicing ‘n dicing lists and data.
    * smd_if for crazy conditional branching using AND and OR.
    * rvm_css because I don’t like waiting for my stylesheets to be delivered from the database.
    * abl_droploader because clients like being able to drag ‘n drop images onto articles.
    * smd_where_used because I’m always forgetting where I filed stuff six months down the line.

    And an honourable mention to:

    * rvm_maintenance / smd_at_work because you always need to put a site in Maintenance Mode. I’ll choose whichever one of these two suits the project.

    Shameful that almost half the list are my own plugins, but they really do underpin most of what I do with my favourite CMS.

  4. Robin l. |

    Awesome plugins, mark.

  5. Vladas |

    Many people do not quite catch the right concept of taxonomy. Thera are two completely different meanings in bibliography:

    * category — thematic subject in hierarchical classification, like in UDK;

    * keywords — free, one-level, non-hierarchical meta subjects, often called tags on the internet.

    An article (and an image, etc.) should be assigned to only one category. The second category2 is intended to adjust the first deeply, more precisely, and thus should be included within area of the first — of an upper category. The need for third and more categories may occur in very rare occasions for multi-level classification, such as in Wikipedia.

    Unlimited and independent should be keywords, but they are. What we need, would far better implementation of <txp:keywords /> (and <txp:meta_keywords />) for indexing and structural design by Textpattern. Although there are some suitable plugins, such as cbe_keywords, rah_repeat, smd_tags, tru_tags: www.textpattern.net/wiki/?title=keywords.

  6. Vladas |

    Would you explain or point me to some example of web-design, where multi-level sections (not a menu) are required?

    Sometimes I would like different sections, at least CSS, to separate the ‘default’ section: for a general cover (start, home page), for category view, for an index page, for authors, for search results, and so on.

  7. Andy |

    Hi Vladas, your explanation makes sense, but from my experience categories are often used more as a form of structured tagging. Using Textpattern’s keywords can often lead to a bit of a mess. I like categories as they have to be predefined. I’m looking at this more as a case of how websites are actually used by real people rather than what is semantically correct.

    As for subsections, I use them on this site to drive the ‘Code’ section which consists of more specific subsections. Categories wouldn’t have easily achieved what I wanted as I wanted the URLs to contain the subsection name among other requirements.

    Personally I’d avoid delivering separate CSS files for sections unless a site was particularly big. It is better to deliver a single minified CSS file that a browser will cache rather than keep requiring the user to retrieve new assets each page they visit. It does mean you need to more carefully plan your stylesheets to keep things optimised, but helps with site performance and as a result improves SEO.

  8. Joop Vos |

    The one and only adi_notes for style guides, code snippets, links to screencasts, etc … clients love it.

    @Stef … when wil your zem_contact_reborn version be out of beta?