{"id":8284,"date":"2014-08-09T16:31:48","date_gmt":"2014-08-09T16:31:48","guid":{"rendered":"https:\/\/www.bartbusschots.ie\/s\/?p=8284"},"modified":"2014-08-09T16:32:41","modified_gmt":"2014-08-09T16:32:41","slug":"two-plugins-to-help-turn-wordpress-into-a-cms","status":"publish","type":"post","link":"https:\/\/www.bartbusschots.ie\/s\/2014\/08\/09\/two-plugins-to-help-turn-wordpress-into-a-cms\/","title":{"rendered":"Two Plugins to help turn WordPress into a CMS"},"content":{"rendered":"<p>As described <a href=\" https:\/\/www.bartbusschots.ie\/s\/2014\/08\/09\/big-site-update\/\" title=\"Big Changes on this Site\" target=\"_blank\">in a post earlier today<\/a>, I have made some significant changes to this site. The short version is that I&#8217;ve started to use WordPress as a CMS (content management system). While the WordPress APIs provide a good range of functions for doing CMS-like things, the web interface is disappointingly lacking in even basic CMS features. Thankfully, WordPress&#8217;s plugin architecture has allowed the community to fill in the gaps.<\/p>\n<p><!--more--><\/p>\n<p>As a rule, I install as few plugins as possible. Each extra plugin adds a little more attack surface to your site, so install exactly as few plugins as you need to create the site you want, no more, no less.<\/p>\n<p>At the heart of a CMS is the ability to collect properly categorised and tagged content together into meaningful views. In short, you need to be able to generate lists of posts or pages matching a given criteria, and insert those lists into a post or a page. You need to be able to mix these lists into user editable content, so what you really need are WordPress short codes that expose this functionality. There are quite a few to choose from, but I have settled on just two, one focused on posts, and one focused on pages. There is some overlap between the two, but both have features the other does not.<\/p>\n<h2>A Plugin for Listing Pages<\/h2>\n<p>Lets start with the simplest one, a short code for listing pages. The critical feature from my point of view is the ability to insert a short code to list all pages that are child pages of the page the short code is inserted into. The plugin I chose is <a href=\"http:\/\/wordpress.org\/plugins\/page-list\/\" title=\"The page-list WordPress Plugin\" target=\"_blank\">page-list<\/a>. This plugin provides the following short codes:<\/p>\n<ul>\n<li><code>[pagelist]<\/code> &#8211; which generates a nested tree of pages, basically, a site map.<\/li>\n<li><code>[subpages]<\/code> &#8211; which generates a nested tree of pages with the current page as the root of the tree &#8211; basically a single branch of the site map. This is the short code I really need.<\/li>\n<li><code>[siblings]<\/code> &#8211; which generates a nested tree with all the current page&#8217;s siblings as roots of the trees.<\/li>\n<li><code>[pagelist_ext]<\/code> &#8211; which generates the same as <code>[pagelist]<\/code>, but includes page excerpts.<\/li>\n<\/ul>\n<p>All of these short codes take arguments to modify their behaviour in various ways, for example, the <code>depth<\/code> argument can be used to limit the depth of the trees, and pages can be excluded from the listing using the <code>exclude<\/code> argument. You can see the impressively comprehensive list of supported arguments <a href=\"http:\/\/wordpress.org\/plugins\/page-list\/other_notes\/\" target=\"_blank\">here<\/a>.<\/p>\n<h2>A Plugin for Listing Posts<\/h2>\n<p>The second plugin I need is one that provides a short code for listing blog posts that meet a certain criteria. Again, there were many to choose from, but the one I settled on is <a href=\"http:\/\/www.billerickson.net\/shortcode-to-display-posts\/\" title=\"Display Posts Shortcode WordPress Plugin\" target=\"_blank\">Display Posts Shortcode<\/a>. This plugin allows just a single short code, <code>[display-posts]<\/code>, but it&#8217;s a very versatile short code supporting an impressive list of arguments and enabling many different searches, renderings, and sort orders. For a full list see the plugin&#8217;s <a href=\"https:\/\/github.com\/billerickson\/Display-Posts-Shortcode\/wiki\" title=\"Display Posts Shortcode - documentation wiki\" target=\"_blank\">documentation wiki<\/a>.<\/p>\n<p>I&#8217;m primarily using the short code to filter based on tags, but it really is impressively versatile.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As described in a post earlier today, I have made some significant changes to this site. The short version is that I&#8217;ve started to use WordPress as a CMS (content management system). While the WordPress APIs provide a good range of functions for doing CMS-like things, the web interface is disappointingly lacking in even basic [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[12],"tags":[451,139,188,429,525],"series":[],"class_list":["post-8284","post","type-post","status-publish","format-standard","hentry","category-computers-tech","tag-plugin","tag-review","tag-software","tag-web-design","tag-wordpress"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p7t9xK-29C","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bartbusschots.ie\/s\/wp-json\/wp\/v2\/posts\/8284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bartbusschots.ie\/s\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bartbusschots.ie\/s\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bartbusschots.ie\/s\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bartbusschots.ie\/s\/wp-json\/wp\/v2\/comments?post=8284"}],"version-history":[{"count":3,"href":"https:\/\/www.bartbusschots.ie\/s\/wp-json\/wp\/v2\/posts\/8284\/revisions"}],"predecessor-version":[{"id":8290,"href":"https:\/\/www.bartbusschots.ie\/s\/wp-json\/wp\/v2\/posts\/8284\/revisions\/8290"}],"wp:attachment":[{"href":"https:\/\/www.bartbusschots.ie\/s\/wp-json\/wp\/v2\/media?parent=8284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bartbusschots.ie\/s\/wp-json\/wp\/v2\/categories?post=8284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bartbusschots.ie\/s\/wp-json\/wp\/v2\/tags?post=8284"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/www.bartbusschots.ie\/s\/wp-json\/wp\/v2\/series?post=8284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}