{"id":297242,"date":"2026-04-20T14:37:10","date_gmt":"2026-04-20T14:37:10","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/micro-site-care-post-last-updated-date\/"},"modified":"2026-07-27T08:39:59","modified_gmt":"2026-07-27T08:39:59","slug":"micro-site-care-post-last-updated-date","status":"publish","type":"plugin","link":"https:\/\/ary.wordpress.org\/plugins\/micro-site-care-post-last-updated-date\/","author":13798559,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.0","stable_tag":"1.6.0","tested":"7.0.2","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"MSC: Post Last Updated Date","header_author":"Anomalous Developers","header_description":"Display and control the post last-updated date in flexible positions.","assets_banners_color":"c4c0c4","last_updated":"2026-07-27 08:39:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/anomalous.co.za","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":311,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.0":{"tag":"1.3.0","author":"djm56","date":"2026-04-23 13:57:23"},"1.4.0":{"tag":"1.4.0","author":"djm56","date":"2026-04-23 13:57:23"},"1.4.1":{"tag":"1.4.1","author":"djm56","date":"2026-05-25 15:12:09"},"1.4.2":{"tag":"1.4.2","author":"djm56","date":"2026-07-24 14:30:35"},"1.6.0":{"tag":"1.6.0","author":"djm56","date":"2026-07-27 08:39:59"}},"upgrade_notice":{"1.5.0":"<p>Improved WordPress.org listing and FAQ; removes a dead stylesheet enqueue. No behaviour changes \u2014 safe update.<\/p>","1.4.2":"<ul>\n<li>Tested with WordPress 7.0.2. No functional changes.<\/li>\n<\/ul>","1.4.1":"<ul>\n<li>Tested with WordPress 7.0. No functional changes.<\/li>\n<\/ul>","1.4.0":"<ul>\n<li>Adds complete translations for 10 additional locales. No functional changes.<\/li>\n<\/ul>","1.3.0":"<p>Adds Brazilian and European Portuguese translations. No functional changes.<\/p>","1.2.0":"<p>Fixes settings-save redirect and label template behaviour. Adds Usage &amp; Support documentation tab and redesigned settings layout.<\/p>","1.0.0":"<p>Initial plugin release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3510983,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3510983,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3510983,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.0","1.4.0","1.4.1","1.4.2","1.6.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3510983,"resolution":"1","location":"assets","locale":"","width":1200,"height":664}},"screenshots":{"1":"Last updated date settings \u2014 choose placement, customise the label, pick a date format, and target post types for the last-modified date display.","2":"Usage &amp; Support tab \u2014 template tag examples and label reference for showing the last updated date anywhere in your theme.","3":"Front-end last updated date on a post \u2014 the \"Updated\" label with schema-friendly HTML5 time markup, displayed below the content."}},"plugin_section":[],"plugin_tags":[246855,273440,244201,273438,273439],"plugin_category":[],"plugin_contributors":[260636],"plugin_business_model":[],"class_list":["post-297242","plugin","type-plugin","status-publish","hentry","plugin_tags-content-freshness","plugin_tags-datemodified-schema","plugin_tags-last-modified-date","plugin_tags-last-updated-date","plugin_tags-show-modified-date","plugin_contributors-djm56","plugin_committers-djm56"],"banners":{"banner":"https:\/\/ps.w.org\/micro-site-care-post-last-updated-date\/assets\/banner-772x250.png?rev=3510983","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/micro-site-care-post-last-updated-date\/assets\/icon-128x128.png?rev=3510983","icon_2x":"https:\/\/ps.w.org\/micro-site-care-post-last-updated-date\/assets\/icon-256x256.png?rev=3510983","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/micro-site-care-post-last-updated-date\/assets\/screenshot-1.png?rev=3510983","caption":"Last updated date settings \u2014 choose placement, customise the label, pick a date format, and target post types for the last-modified date display."}],"raw_content":"<!--section=description-->\n<p><strong>Display the last updated date on your WordPress posts, pages and custom post types \u2014 automatically, no theme editing required.<\/strong><\/p>\n\n<p>Readers and search engines both favour fresh content. MSC: Post Last Updated Date shows exactly when a post was last modified, with a customisable label, your choice of date format, and clean HTML5 <code>&lt;time&gt;<\/code> markup with an ISO 8601 timestamp.<\/p>\n\n<p><strong>Key features:<\/strong><\/p>\n\n<ul>\n<li>Show the last updated date automatically before content, after content, or in both positions.<\/li>\n<li>Set placement to Manual and use the template tag in your theme for full control over where the label appears.<\/li>\n<li>Customise the label text with a flexible template \u2014 use <code>%s<\/code> to insert the date, or omit it to show a static label.<\/li>\n<li>Choose between the WordPress site date format or a custom PHP date format string.<\/li>\n<li>Optionally show the label only when a post has actually been edited after publishing (on by default).<\/li>\n<li>Target specific post types, or exclude selected post types from an all-types baseline \u2014 works with any public custom post type.<\/li>\n<li>Clean HTML5 <code>&lt;time&gt;<\/code> element output with an ISO 8601 <code>datetime<\/code> attribute for SEO and screen readers.<\/li>\n<li>Optional relative dates (\"3 days ago\") and a <code>[msclu_last_updated]<\/code> shortcode to place the date anywhere.<\/li>\n<li>Lightweight: no JavaScript, no external services, a single option row \u2014 zero tracking, GDPR-friendly.<\/li>\n<li>Translated into 12 languages (German, Spanish, French, Italian, Japanese, Dutch, Portuguese).<\/li>\n<li>Developer-friendly: four filter hooks to customise visibility, label, CSS classes, and final HTML output.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>micro-site-care-post-last-updated-date<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install directly from the WordPress plugin screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>Settings \u2192 MSC Post Last Updated Date<\/strong> to configure the plugin.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20show%20the%20last%20updated%20date%20on%20my%20wordpress%20posts%3F\"><h3>How do I show the last updated date on my WordPress posts?<\/h3><\/dt>\n<dd><p>Activate the plugin \u2014 that's it. By default a \"Updated {date}\" label appears below the content of any post or page that has been edited after publishing. Fine-tune the placement, label and date format under <strong>Settings \u2192 MSC Post Last Updated Date<\/strong>.<\/p><\/dd>\n<dt id=\"why%20is%20the%20label%20not%20appearing%20on%20my%20posts%3F\"><h3>Why is the label not appearing on my posts?<\/h3><\/dt>\n<dd><ol>\n<li>Go to <strong>Settings \u2192 MSC Post Last Updated Date<\/strong> and confirm <strong>Enable output<\/strong> is ticked.<\/li>\n<li>Make sure the relevant post type (e.g. Post or Page) is selected in the <strong>Post types<\/strong> list.<\/li>\n<li>If <strong>Only show when modified date differs from publish date<\/strong> is ticked (the default), the label only appears on posts that have been edited after their original publish date.<\/li>\n<li>If <strong>Automatic placement<\/strong> is set to <strong>Manual only<\/strong>, nothing is injected automatically \u2014 you need to add the template tag to your theme.<\/li>\n<\/ol><\/dd>\n<dt id=\"does%20this%20plugin%20change%20my%20published%20date%20or%20modify%20my%20posts%3F\"><h3>Does this plugin change my published date or modify my posts?<\/h3><\/dt>\n<dd><p>No. It is display-only: the label is added at render time via a content filter. Nothing is written to your posts, and your published and modified dates are untouched.<\/p><\/dd>\n<dt id=\"how%20do%20i%20place%20the%20date%20exactly%20where%20i%20want%20in%20my%20theme%3F\"><h3>How do I place the date exactly where I want in my theme?<\/h3><\/dt>\n<dd><p>Set <strong>Automatic placement<\/strong> to <strong>Manual only<\/strong> on the Settings page, then add the following in your theme template where you want the label:<\/p>\n\n<pre><code>&lt;?php msclup_the_last_updated(); ?&gt;\n<\/code><\/pre>\n\n<p>See the <strong>Usage &amp; Support<\/strong> tab on the settings page for full template tag documentation and examples.<\/p><\/dd>\n<dt id=\"is%20there%20a%20shortcode%3F\"><h3>Is there a shortcode?<\/h3><\/dt>\n<dd><p>Yes. Use <code>[msclu_last_updated]<\/code> anywhere shortcodes run (posts, pages, widgets). Optional attributes: <code>post_id<\/code> (defaults to the current post) and <code>relative=\"true\"<\/code> \/ <code>relative=\"false\"<\/code> to override the date style for that instance.<\/p><\/dd>\n<dt id=\"can%20i%20show%20a%20relative%20date%20like%20%223%20days%20ago%22%3F\"><h3>Can I show a relative date like \"3 days ago\"?<\/h3><\/dt>\n<dd><p>Yes. Set <strong>Date format source<\/strong> to <strong>Relative<\/strong> on the settings page. The visible label reads \"Updated 3 days ago\", while the machine-readable <code>&lt;time datetime&gt;<\/code> attribute stays an absolute ISO-8601 timestamp for SEO.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20label%20text%20%28%22last%20updated%22%2C%20%22last%20checked%22%2C%20%E2%80%A6%29%3F\"><h3>Can I change the label text (\"Last updated\", \"Last checked\", \u2026)?<\/h3><\/dt>\n<dd><p>Yes. Use the <strong>Label template<\/strong> setting. The <code>%s<\/code> token is replaced with the formatted date. Examples:<\/p>\n\n<ul>\n<li><code>Updated %s<\/code> outputs <code>Updated March 28, 2026<\/code><\/li>\n<li><code>Last checked: %s<\/code> outputs <code>Last checked: March 28, 2026<\/code><\/li>\n<li>Omitting <code>%s<\/code> entirely shows the label text with no date appended.<\/li>\n<\/ul><\/dd>\n<dt id=\"can%20i%20use%20a%20custom%20date%20format%3F\"><h3>Can I use a custom date format?<\/h3><\/dt>\n<dd><p>Yes. Set <strong>Date format source<\/strong> to <strong>Custom<\/strong> and enter a PHP date format string in the <strong>Custom date format<\/strong> field. The <strong>Usage &amp; Support<\/strong> tab includes a quick reference table and a link to the full WordPress date format documentation.<\/p><\/dd>\n<dt id=\"can%20i%20show%20the%20date%20only%20when%20a%20post%20has%20actually%20been%20edited%3F\"><h3>Can I show the date only when a post has actually been edited?<\/h3><\/dt>\n<dd><p>Yes \u2014 that is the default behaviour. The <strong>Only show when modified date differs from publish date<\/strong> setting suppresses the label on posts that have never been edited after publishing, so \"Updated\" always means something.<\/p><\/dd>\n<dt id=\"does%20it%20add%20schema.org%20structured%20data%20for%20seo%3F\"><h3>Does it add schema.org structured data for SEO?<\/h3><\/dt>\n<dd><p>The plugin outputs a semantic HTML5 <code>&lt;time&gt;<\/code> element with a machine-readable ISO 8601 <code>datetime<\/code> attribute, which search engines can parse. It does not inject JSON-LD structured data \u2014 your SEO plugin's <code>dateModified<\/code> schema (which WordPress themes and SEO plugins generate from the same modified date) is complemented, not duplicated.<\/p><\/dd>\n<dt id=\"how%20do%20i%20style%20the%20date%20label%3F\"><h3>How do I style the date label?<\/h3><\/dt>\n<dd><p>The plugin outputs:<\/p>\n\n<pre><code>&lt;p class=\"msclu-last-updated\"&gt;&lt;time datetime=\"2026-03-28T14:30:00+00:00\"&gt;Updated March 28, 2026&lt;\/time&gt;&lt;\/p&gt;\n<\/code><\/pre>\n\n<p>Style the <code>.msclu-last-updated<\/code> class in your theme stylesheet or the Customizer's Additional CSS.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20custom%20post%20types%3F\"><h3>Does it work with custom post types?<\/h3><\/dt>\n<dd><p>Yes. All registered public post types appear in the <strong>Post types<\/strong> list on the settings page, in both include and exclude modes.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F%20what%20data%20does%20it%20store%3F\"><h3>Will it slow down my site? What data does it store?<\/h3><\/dt>\n<dd><p>No measurable impact: the plugin loads no JavaScript, no stylesheets and makes no external requests. It stores a single options row and filters content only on singular views. Uninstalling removes the option \u2014 no data is left behind.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Changed: Renamed the \"Usage &amp; Support\" tab to \"Support\".<\/li>\n<li>Changed: Support now links to the plugin's WordPress.org support forum; removed the Settings-tab support box and the old contact button.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>New: <code>[msclu_last_updated]<\/code> shortcode to display the last-updated date anywhere, with optional <code>post_id<\/code> and <code>relative<\/code> attributes.<\/li>\n<li>New: Optional relative-date mode (\"3 days ago\"); the <code>&lt;time datetime&gt;<\/code> attribute stays an absolute ISO-8601 timestamp for SEO.<\/li>\n<li>Improved: WordPress.org listing rewritten \u2014 clearer title, searchable tags, expanded FAQ covering styling, SEO markup, performance and data handling.<\/li>\n<li>Improved: Refined search tags and screenshot captions for discoverability.<\/li>\n<li>Fixed: Removed dead stylesheet enqueue referencing a file that was never shipped; the plugin now (accurately) loads zero assets on the front end.<\/li>\n<li>Developer documentation corrected: filter hook signatures, option defaults and the full 12-locale translation list.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.0.2. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.0. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Adds complete translations for 10 additional locales (de_CH, de_DE, es_ES, es_MX, fr_CA, fr_FR, it_IT, ja, nl_BE, nl_NL). Regenerates .pot source template with correct file references. Populates readme.txt translations for all 12 locales.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Adds Brazilian and European Portuguese translations. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Fixed: Admin settings page redirect URL pointed to <code>admin.php<\/code> instead of <code>options-general.php<\/code>; success notice now appears correctly after saving.<\/li>\n<li>Fixed: Label template without <code>%s<\/code> was silently replaced with the default <code>Updated %s<\/code>; it now renders as-is.<\/li>\n<li>Added: Dedicated Usage &amp; Support documentation tab with template tag reference, label examples, date format quick-reference, FAQ, and support link.<\/li>\n<li>Added: Support sidebar panel on the Settings tab.<\/li>\n<li>Removed: Debug <code>error_log()<\/code> calls from all Free plugin files.<\/li>\n<li>Removed: Unnecessary <code>wp_cache_delete()<\/code> calls.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Automatic content injection with before, after, both, and manual placement modes.<\/li>\n<li>Configurable label template with <code>%s<\/code> date placeholder.<\/li>\n<li>Site or custom date format source.<\/li>\n<li>Visibility condition: suppress label when modified date matches publish date.<\/li>\n<li>Include or exclude post type targeting mode.<\/li>\n<li>PHP template tags: <code>msclup_the_last_updated()<\/code> and <code>msclup_get_last_updated()<\/code>.<\/li>\n<li>HTML5 <code>&lt;time&gt;<\/code> element output with ISO 8601 <code>datetime<\/code> attribute.<\/li>\n<li>Developer filter hooks: <code>msclu_should_display<\/code>, <code>msclu_label_text<\/code>, <code>msclu_wrapper_classes<\/code>, <code>msclu_output_html<\/code>.<\/li>\n<li>Two-tab admin settings page with Usage &amp; Support documentation tab.<\/li>\n<\/ul>","raw_excerpt":"Show a &quot;Last Updated&quot; date on posts and pages. SEO-friendly time markup, custom labels and date formats, works with any theme. No JavaScript.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/297242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=297242"}],"author":[{"embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/djm56"}],"wp:attachment":[{"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=297242"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=297242"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=297242"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=297242"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=297242"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=297242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}