{"id":69797,"date":"2017-06-06T04:03:31","date_gmt":"2017-06-06T04:03:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/taro-clockwork-post\/"},"modified":"2026-03-19T07:08:13","modified_gmt":"2026-03-19T07:08:13","slug":"taro-clockwork-post","status":"publish","type":"plugin","link":"https:\/\/scn.wordpress.org\/plugins\/taro-clockwork-post\/","author":13589055,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.2.8","stable_tag":"1.2.8","tested":"6.9.4","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"Taro Clockwork Post","header_author":"TAROSKY INC. <mng_wpcom@tarosky.co.jp>","header_description":"You can expire post with specified date.","assets_banners_color":"1a9fca","last_updated":"2026-03-19 07:08:13","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/taro-clockwork-post","header_author_uri":"https:\/\/tarosky.co.jp","rating":0,"author_block_rating":0,"active_installs":30,"downloads":8573,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"Tarosky","date":"2017-06-06 04:03:00"},"1.0.1":{"tag":"1.0.1","author":"Tarosky","date":"2017-10-16 08:04:58"},"1.1.0":{"tag":"1.1.0","author":"Tarosky","date":"2021-10-05 16:52:07"},"1.2.0":{"tag":"1.2.0","author":"Tarosky","date":"2023-04-12 08:00:52"},"1.2.1":{"tag":"1.2.1","author":"Tarosky","date":"2024-07-03 04:39:45"},"1.2.2":{"tag":"1.2.2","author":"Tarosky","date":"2024-07-30 05:34:30"},"1.2.5":{"tag":"1.2.5","author":"Tarosky","date":"2024-12-13 09:21:51"},"1.2.6":{"tag":"1.2.6","author":"Tarosky","date":"2025-01-31 07:39:36"},"1.2.7":{"tag":"1.2.7","author":"Tarosky","date":"2026-03-19 06:55:42"},"1.2.8":{"tag":"1.2.8","author":"Tarosky","date":"2026-03-19 07:08:13"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":0},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2609804,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2609804,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2609804,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2609804,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0","1.2.0","1.2.1","1.2.2","1.2.5","1.2.6","1.2.7","1.2.8"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1946,84,86],"plugin_category":[50],"plugin_contributors":[83237,142014],"plugin_business_model":[],"class_list":["post-69797","plugin","type-plugin","status-publish","hentry","plugin_tags-expiration","plugin_tags-media","plugin_tags-post","plugin_category-media","plugin_contributors-takahashi_fumiki","plugin_contributors-tarosky","plugin_committers-marikomorimoto","plugin_committers-takahashi_fumiki","plugin_committers-tarosky","plugin_committers-toru"],"banners":{"banner":"https:\/\/ps.w.org\/taro-clockwork-post\/assets\/banner-772x250.png?rev=2609804","banner_2x":"https:\/\/ps.w.org\/taro-clockwork-post\/assets\/banner-1544x500.png?rev=2609804","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/taro-clockwork-post\/assets\/icon-128x128.png?rev=2609804","icon_2x":"https:\/\/ps.w.org\/taro-clockwork-post\/assets\/icon-256x256.png?rev=2609804","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>You can enter expiration date on edit screen.\nThis plugin runs cron every minute to search expired posts and make them <code>private<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/taro-clockwork-post<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to <code>Setting &gt; Reading<\/code> and choose post type to expiration ready.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20to%20avoid%20post%20status%20to%20be%20private\"><h3>How to avoid post status to be private<\/h3><\/dt>\n<dd><p>Private is the default post status but if you want another case, use filter hook for that.<\/p>\n\n<pre>\n\/\/ Filter status if post type is `product`\nadd_filter( 'tscp_expired_status', function( $status, $post ) {\n   if ( 'product' == $post-&gt;post_type ) {\n       $status = 'no-stock';\n   }\n   return $status;\n}, 10, 2 );\n<\/pre>\n\n<p>If status is <code>false<\/code>, this plugin doesn't change post status.\nIn such situation, you might need adding any custom field to post.\nUse another action which will occur just after <code>tscp_expired_status<\/code>.<\/p>\n\n<pre>\n\/\/ do something just after post status is\/isn't changed.\nadd_action( 'tscp_post_expired', function( $post ) {\n   \/\/ Post is still publish,\n   \/\/ But add some custom fields\n   update_post_meta( $post-&gt;ID, '_not_in_front_page', true );\n} );\n<\/pre><\/dd>\n<dt id=\"change%20frequency%20of%20expiration%20check\"><h3>Change frequency of expiration check<\/h3><\/dt>\n<dd><p>If you are low-resource environment, you might need low frequency.\nFor example, assume that your site allows posts to be expired within 10 min.\nUse hook to delay interval.<\/p>\n\n<pre>\nadd_filter( 'tscp_cron_interval', function() {\n  \/\/ Change interval from 60 sec to 600 sec.\n  return 600;\n} );\n<\/pre><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>Fix month string error in Clasic editor's meta box. This happened on Any 31st day in a month.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Fix deploy script to avoid incorrect versioning.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Available post type are expanded to all post types with <code>show_ui = true<\/code>.<\/li>\n<li>Remove <code>withState<\/code> from editor script.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Bump required PHP version.<\/li>\n<li>Fix editor UI.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Support block editor.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix broken link on edit screen.<\/li>\n<li>Add unit test for expiration process.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A WordPress plugin to expire post with specified date.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/69797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=69797"}],"author":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tarosky"}],"wp:attachment":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=69797"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=69797"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=69797"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=69797"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=69797"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=69797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}