After a relatively short (for Textpattern) release cycle, we are delighted to present Textpattern 4.7.0 in memory of Dean Cameron Allen, its creator.

While you may think a shorter development time is an indicator of fewer features, nothing could be further from the truth. Over the last year, we’ve had an uptake in the number of collaborators, testers and people getting involved in the project, so we’ve been able to pack tonnes of features and enhancements in, while still remaining true to the nimble, lightweight canvas upon which you can paint your sites. This includes long-requested support for public themes. More details below.


You can either download from the links below, or from the GitHub project repository directly (please take a moment to ‘star’ our project too if you like it!)

File download

SHA256 checksum bbcb43457b342a97d97871cc0460357461768dd33fb389a245faad2711f22c88
File size 1655 kB | Created
File download


SHA256 checksum cfa534ff85567e3443a2adc1b8916ae707540100ee57f646d9fb62d6ee029479
File size 1418 kB | Created

The demo site courtesy of Pete Cooper allows you to run the release or even sneak peaks of future development versions in complete safety. The demo is rebuilt every few hours using the shiny new Textpattern 4.7.0 auto-installer.

System requirements

Please note that Textpattern 4.7.0 requires PHP 5.4 or newer. PHP 7 is highly recommended.

Installation and upgrade

As with all releases, please ensure you log out of your admin side prior to upgrade and refer to the README.txt file in the download archives for detailed instructions.

What’s new in this release?

Please see HISTORY.txt for full details of what’s packed into 4.7.0. As well as a whole slew of minor fixes and tinkering to make the process of website management more slick, here are some edited highlights to whet your appetite:

  • Support for website themes. Markup is stored within the database as usual (accessed via the Themes panel) and available as flat file templates for easier version control, portability and installation (many many thanks, NicolasGraph). Look out for blog posts such as this to help explain the feature, along with the themes documentation
  • Support for installation on Nginx web servers, automated installation from the command line, automatic preference checks on log in, and an improved setup/upgrade workflow (thanks, makss).
  • All languages are now managed in files that are bundled with the release, reducing reliance on the flaky RPC server. More languages, including Filipino and Tagalog added. Thank you to all translators who keep up-to-date with our many (many) code changes.
  • GDPR compliance support, by removing all personally identifiable information storage, and altering comments to be opt-in by default, with complete removal of cookie information when requested.
  • Complete overhaul of the multi-site installation routine and symbolic linking system for smoother and simpler multi-site setups (much thanks to jools-r).
  • Use JSON file to check for new releases/pre-releases instead of legacy RPC server (thanks, makss).
  • Plugin Textpacks stored in database and installed on demand.
  • Plugins have persistent data column available for custom storage.

Admin-side tweaks

  • Better layout, markup and visual cues, with greater support for ARIA, assistive technologies and RTL languages.
  • Persistent article save and multi-edit tools when scrolling.
  • User-selectable column list options in tables that replaces ‘Show more detail’ checkboxes. Settings remembered per device.
  • Ajax saves on just about every panel for a snappier user interface.
  • CTRL/CMD-S shortcut to save content is available on every edit panel.
  • Per-user admin-side languages as standard.
  • Multi-file upload support, with progress meter.
  • Automatic table of contents generation for well-structured plugin help text.
  • Last used Page/Form/Stylesheet remembered.
  • Textfilter options and help topics moved inline with their textareas. Write panel ‘sidehelp’ twisty removed.
  • Pagination steps are more grid friendly: 12/24/48/96 items.
  • Pagination and search added to Plugins panel.

Tag changes

  • Valueless attributes.
  • Optional short-tags.
  • Ability to use Forms as tags via <txp:output_form /> or <txp::shortcode /> tags.
  • <txp:output_form /> tag supports user-defined attributes, coupled with <txp:yield />.
  • Tag global attributes added: ‘breakby’, ‘breakclass’, ‘class’, ‘escape’, ‘html_id’, ‘not’ and ‘wraptag’.
  • <txp:article_custom /> tag can count pages and article tags have improved sort, status and time handling.
  • Pagination tags (like <txp:newer /> and <txp:older />) can be placed before <txp:article /> tag.
  • Added <txp:evaluate />, <txp:header />, and <txp:if_logged_in /> tags.
  • Reinstated <txp:keywords> tag.
  • Deprecated <txp:image_display /> and <txp:image_index /> tags. Use <txp:image /> and <txp:images />, respectively, instead.
  • ‘wraptag’ attribute can prepend/append content using special ‘<+>’ syntax.

Further notes

Thank you again to everyone involved in making this release what it is. Everyone has pitched in above and beyond the call of duty and we’re grateful to every person who continues to help drive this project.

If you find anything not working or wish to propose enhancements, please report them on GitHub, stating the version and any salient information. There are templates there for feature requests and bug reports.

We hope you enjoy this release and it serves you, your sites and clients well!