{"id":1395,"date":"2009-06-13T15:30:53","date_gmt":"2009-06-13T15:30:53","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/edit-flow\/"},"modified":"2026-01-12T16:08:58","modified_gmt":"2026-01-12T16:08:58","slug":"edit-flow","status":"publish","type":"plugin","link":"https:\/\/ug.wordpress.org\/plugins\/edit-flow\/","author":5279457,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.10.3","stable_tag":"0.10.3","tested":"6.9.4","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Edit Flow","header_author":"Daniel Bachhuber, Scott Bressler, Mohammad Jangda, Automattic, and others","header_description":"","assets_banners_color":"","last_updated":"2026-01-12 16:08:58","external_support_url":"","external_repository_url":"","donate_link":"http:\/\/editflow.org\/contribute\/","header_plugin_uri":"http:\/\/editflow.org\/","header_author_uri":"","rating":4.2,"author_block_rating":4.6842105263158,"active_installs":5000,"downloads":480372,"num_ratings":50,"support_threads":1,"support_threads_resolved":0,"author_block_count":6,"sections":["description","installation","faq","changelog"],"tags":{"0.1.5":{"tag":"0.1.5","author":"batmoo","date":"2009-08-18 02:33:59"},"0.10.0":{"tag":"0.10.0","author":"automattic","date":"2026-01-06 11:53:31"},"0.10.1":{"tag":"0.10.1","author":"automattic","date":"2026-01-07 15:22:48"},"0.10.2":{"tag":"0.10.2","author":"automattic","date":"2026-01-07 16:31:36"},"0.10.3":{"tag":"0.10.3","author":"automattic","date":"2026-01-12 16:08:58"},"0.2":{"tag":"0.2","author":"batmoo","date":"2009-09-13 04:59:14"},"0.3":{"tag":"0.3","author":"batmoo","date":"2010-01-27 05:38:23"},"0.3.1":{"tag":"0.3.1","author":"batmoo","date":"2010-01-27 06:25:05"},"0.3.2":{"tag":"0.3.2","author":"batmoo","date":"2010-02-02 05:27:28"},"0.3.3":{"tag":"0.3.3","author":"batmoo","date":"2010-02-04 03:29:13"},"0.5":{"tag":"0.5","author":"danielbachhuber","date":"2010-07-03 22:16:39"},"0.5.1":{"tag":"0.5.1","author":"danielbachhuber","date":"2010-07-29 04:02:19"},"0.5.2":{"tag":"0.5.2","author":"danielbachhuber","date":"2010-08-03 23:16:36"},"0.5.3":{"tag":"0.5.3","author":"batmoo","date":"2010-10-06 15:25:19"},"0.6":{"tag":"0.6","author":"danielbachhuber","date":"2010-11-09 23:11:15"},"0.6.1":{"tag":"0.6.1","author":"batmoo","date":"2011-01-10 04:09:00"},"0.6.2":{"tag":"0.6.2","author":"danielbachhuber","date":"2011-01-28 03:30:15"},"0.6.3":{"tag":"0.6.3","author":"danielbachhuber","date":"2011-03-21 16:20:46"},"0.6.4":{"tag":"0.6.4","author":"danielbachhuber","date":"2011-07-22 22:01:50"},"0.6.5":{"tag":"0.6.5","author":"danielbachhuber","date":"2011-09-20 17:18:29"},"0.7":{"tag":"0.7","author":"danielbachhuber","date":"2012-01-09 21:33:03"},"0.7.1":{"tag":"0.7.1","author":"danielbachhuber","date":"2012-04-11 23:46:53"},"0.7.2":{"tag":"0.7.2","author":"danielbachhuber","date":"2012-07-03 20:18:16"},"0.7.3":{"tag":"0.7.3","author":"danielbachhuber","date":"2012-07-03 21:36:34"},"0.7.4":{"tag":"0.7.4","author":"danielbachhuber","date":"2012-11-21 23:13:37"},"0.7.5":{"tag":"0.7.5","author":"danielbachhuber","date":"2013-01-30 04:53:45"},"0.7.6":{"tag":"0.7.6","author":"danielbachhuber","date":"2013-01-31 04:11:52"},"0.8":{"tag":"0.8","author":"comradefuzz","date":"2013-12-20 03:06:05"},"0.8.1":{"tag":"0.8.1","author":"philipjohn","date":"2016-07-30 20:01:09"},"0.8.2":{"tag":"0.8.2","author":"philipjohn","date":"2017-11-21 08:35:49"},"0.9":{"tag":"0.9","author":"automattic","date":"2019-01-11 05:35:03"},"0.9.1":{"tag":"0.9.1","author":"batmoo","date":"2019-11-04 21:31:03"},"0.9.2":{"tag":"0.9.2","author":"batmoo","date":"2019-11-25 05:11:13"},"0.9.3":{"tag":"0.9.3","author":"comradefuzz","date":"2019-12-19 04:48:47"},"0.9.4":{"tag":"0.9.4","author":"comradefuzz","date":"2020-02-04 21:24:05"},"0.9.5":{"tag":"0.9.5","author":"comradefuzz","date":"2020-04-08 12:53:19"},"0.9.6":{"tag":"0.9.6","author":"comradefuzz","date":"2020-04-28 03:05:00"},"0.9.7":{"tag":"0.9.7","author":"automattic","date":"2022-08-26 17:59:53"},"0.9.8":{"tag":"0.9.8","author":"automattic","date":"2024-04-10 15:14:56"},"0.9.9":{"tag":"0.9.9","author":"automattic","date":"2024-06-04 01:56:56"}},"upgrade_notice":[],"ratings":{"1":5,"2":2,"3":4,"4":8,"5":31},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3434460,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3433533,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3437926,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/index.php?page=calendar\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"edit-flow\"},\"options\":{\"activate\":true}},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Initialize Edit Flow modules and capabilities *\\\/ require_once 'wordpress\\\/wp-load.php'; if ( function_exists( 'EditFlow' ) ) { if ( isset( EditFlow()->custom_status ) ) { EditFlow()->custom_status->install(); } if ( isset( EditFlow()->calendar ) ) { EditFlow()->calendar->install(); } } $role = get_role( 'administrator' ); if ( $role ) { $role->add_cap( 'ef_view_calendar' ); } ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Create editor user *\\\/ require_once 'wordpress\\\/wp-load.php'; $user_id = wp_create_user( 'editor', 'password', 'editor@example.com' ); if ( ! is_wp_error( $user_id ) ) { $user = new WP_User( $user_id ); $user->set_role( 'editor' ); update_user_meta( $user_id, 'first_name', 'Sarah' ); update_user_meta( $user_id, 'last_name', 'Editor' ); wp_update_user( array( 'ID' => $user_id, 'display_name' => 'Sarah Editor' ) ); } ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Create writer user *\\\/ require_once 'wordpress\\\/wp-load.php'; $user_id = wp_create_user( 'writer', 'password', 'writer@example.com' ); if ( ! is_wp_error( $user_id ) ) { $user = new WP_User( $user_id ); $user->set_role( 'author' ); update_user_meta( $user_id, 'first_name', 'James' ); update_user_meta( $user_id, 'last_name', 'Writer' ); wp_update_user( array( 'ID' => $user_id, 'display_name' => 'James Writer' ) ); } ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Create sample posts with various statuses *\\\/ require_once 'wordpress\\\/wp-load.php'; $writer = get_user_by( 'login', 'writer' ); $editor = get_user_by( 'login', 'editor' ); wp_insert_post( array( 'post_title' => 'New Feature: AI-Powered Content Suggestions', 'post_content' => 'This article explores how AI can help content creators brainstorm and refine their ideas.', 'post_status' => 'pitch', 'post_author' => $writer->ID, 'post_date' => date( 'Y-m-d H:i:s', strtotime( '+3 days' ) ), ) ); wp_insert_post( array( 'post_title' => 'Guide to Remote Team Collaboration', 'post_content' => 'Remote work has transformed how editorial teams collaborate.', 'post_status' => 'assigned', 'post_author' => $writer->ID, 'post_date' => date( 'Y-m-d H:i:s', strtotime( '+5 days' ) ), ) ); $progress_post = wp_insert_post( array( 'post_title' => '10 Tips for Better Editorial Workflows', 'post_content' => 'Streamlining your editorial workflow can save hours each week.', 'post_status' => 'in-progress', 'post_author' => $writer->ID, 'post_date' => date( 'Y-m-d H:i:s', strtotime( '+1 day' ) ), ) ); update_option( 'ef_demo_progress_post_id', $progress_post ); wp_insert_post( array( 'post_title' => 'The Future of Digital Publishing', 'post_content' => 'Digital publishing continues to evolve rapidly.', 'post_status' => 'pending', 'post_author' => $editor->ID, 'post_date' => date( 'Y-m-d H:i:s', strtotime( '+2 days' ) ), ) ); wp_insert_post( array( 'post_title' => 'Interview: Leading Through Change', 'post_content' => 'In this exclusive interview, we speak with industry leaders.', 'post_status' => 'draft', 'post_author' => 1, 'post_date' => date( 'Y-m-d H:i:s', strtotime( '+7 days' ) ), ) ); wp_insert_post( array( 'post_title' => 'Weekly Roundup: Content Strategy Insights', 'post_content' => 'This week in content strategy: new research on reader engagement.', 'post_status' => 'future', 'post_author' => $editor->ID, 'post_date' => date( 'Y-m-d H:i:s', strtotime( '+4 days' ) ), ) ); ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Add editorial comments to demonstrate collaboration *\\\/ require_once 'wordpress\\\/wp-load.php'; $post_id = get_option( 'ef_demo_progress_post_id' ); if ( $post_id ) { $editor = get_user_by( 'login', 'editor' ); $writer = get_user_by( 'login', 'writer' ); wp_insert_comment( array( 'comment_post_ID' => $post_id, 'comment_content' => 'Great start! Could you expand on tip #3 about visual calendars?', 'comment_type' => 'editorial-comment', 'user_id' => $editor->ID, 'comment_author' => $editor->display_name, 'comment_author_email' => $editor->user_email, 'comment_approved' => 'editorial-comment', ) ); wp_insert_comment( array( 'comment_post_ID' => $post_id, 'comment_content' => 'Thanks Sarah! I will add a calendar screenshot and expand that section.', 'comment_type' => 'editorial-comment', 'user_id' => $writer->ID, 'comment_author' => $writer->display_name, 'comment_author_email' => $writer->user_email, 'comment_approved' => 'editorial-comment', ) ); delete_option( 'ef_demo_progress_post_id' ); } ?>\"},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":[],"tagged_versions":["0.1.5","0.10.0","0.10.1","0.10.2","0.10.3","0.2","0.3","0.3.1","0.3.2","0.3.3","0.5","0.5.1","0.5.2","0.5.3","0.6","0.6.1","0.6.2","0.6.3","0.6.4","0.6.5","0.7","0.7.1","0.7.2","0.7.3","0.7.4","0.7.5","0.7.6","0.8","0.8.1","0.8.2","0.9","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","0.9.6","0.9.7","0.9.8","0.9.9"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3433533,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3433533,"resolution":"2","location":"assets","locale":""},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3433533,"resolution":"3","location":"assets","locale":""},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3433533,"resolution":"4","location":"assets","locale":""},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3433533,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"The calendar is a convenient month-by-month look at your content. Filter to specific statuses or categories to drill down.","2":"Custom statuses allow you to define the key stages of your workflow.","3":"Editorial comments allow for private discussion between writers and editors on a post-by-post basis.","4":"Keep track of the important details with editorial metadata.","5":"View all of your upcoming posts with the more traditional story budget view, and hit the print button to take it to your planning meeting."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[22187,8485,11916,11913,8197],"plugin_category":[41,44],"plugin_contributors":[77494,77504,77514,78161,79178],"plugin_business_model":[],"class_list":["post-1395","plugin","type-plugin","status-publish","hentry","plugin_tags-custom-status","plugin_tags-editorial","plugin_tags-editorial-calendar","plugin_tags-newsroom","plugin_tags-workflow","plugin_category-communication","plugin_category-discussion-and-community","plugin_contributors-automattic","plugin_contributors-batmoo","plugin_contributors-danielbachhuber","plugin_contributors-garyj","plugin_contributors-sbressler","plugin_committers-automattic","plugin_committers-batmoo","plugin_committers-wpcomvip","plugin_support_reps-dartiss","plugin_support_reps-garyj"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/edit-flow\/assets\/icon-128x128.png?rev=3434460","icon_2x":"https:\/\/ps.w.org\/edit-flow\/assets\/icon-256x256.png?rev=3433533","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/edit-flow\/assets\/screenshot-1.jpg?rev=3433533","caption":"The calendar is a convenient month-by-month look at your content. Filter to specific statuses or categories to drill down."},{"src":"https:\/\/ps.w.org\/edit-flow\/assets\/screenshot-2.jpg?rev=3433533","caption":"Custom statuses allow you to define the key stages of your workflow."},{"src":"https:\/\/ps.w.org\/edit-flow\/assets\/screenshot-3.jpg?rev=3433533","caption":"Editorial comments allow for private discussion between writers and editors on a post-by-post basis."},{"src":"https:\/\/ps.w.org\/edit-flow\/assets\/screenshot-4.jpg?rev=3433533","caption":"Keep track of the important details with editorial metadata."},{"src":"https:\/\/ps.w.org\/edit-flow\/assets\/screenshot-5.jpg?rev=3433533","caption":"View all of your upcoming posts with the more traditional story budget view, and hit the print button to take it to your planning meeting."}],"raw_content":"<!--section=description-->\n<p>Edit Flow empowers you to collaborate with your editorial team inside WordPress. We've made it modular so you can customize it to your needs:<\/p>\n\n<ul>\n<li><a href=\"http:\/\/editflow.org\/features\/calendar\/\">Calendar<\/a> - A convenient month-by-month look at your content.<\/li>\n<li><a href=\"http:\/\/editflow.org\/features\/custom-statuses\/\">Custom Statuses<\/a> - Define the key stages to your workflow.<\/li>\n<li><a href=\"http:\/\/editflow.org\/features\/editorial-comments\/\">Editorial Comments<\/a> - Threaded commenting in the admin for private discussion between writers and editors.<\/li>\n<li><a href=\"http:\/\/editflow.org\/features\/editorial-metadata\/\">Editorial Metadata<\/a> - Keep track of the important details.<\/li>\n<li><a href=\"http:\/\/editflow.org\/features\/notifications\/\">Notifications<\/a> - Receive timely updates on the content you're following.<\/li>\n<li><a href=\"http:\/\/editflow.org\/features\/story-budget\/\">Story Budget<\/a> - View your upcoming content budget.<\/li>\n<li><a href=\"http:\/\/editflow.org\/features\/user-groups\/\">User Groups<\/a> - Keep your users organized by department or function.<\/li>\n<\/ul>\n\n<p>More details for each feature, screenshots and documentation can be found on <a href=\"http:\/\/editflow.org\/\">our website<\/a>.<\/p>\n\n<p>We'd love to hear from you! For support questions, feedback and ideas, please use the <a href=\"http:\/\/wordpress.org\/tags\/edit-flow?forum_id=10\">WordPress.org forums<\/a>, which we look at often. If you'd like to contribute code, <a href=\"http:\/\/editflow.org\/contribute\/\">we'd love to have you involved<\/a>.<\/p>\n\n<!--section=installation-->\n<p>The easiest way to install this plugin is to go to Add New in the Plugins section of your blog admin and search for \"Edit Flow.\" On the far right side of the search results, click \"Install.\"<\/p>\n\n<p>If the automatic process above fails, follow these simple steps to do a manual install:<\/p>\n\n<ol>\n<li>Extract the contents of the zip file into your <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Write and enjoy the merits of a structured editorial workflow!<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='does%20edit%20flow%20work%20with%20multisite%3F'><h3>Does Edit Flow work with multisite?<\/h3><\/dt>\n<dd><p>Yep, in the sense that you can activate Edit Flow on each subsite. Edit Flow doesn't yet offer the ability to manage content across a network of sites.<\/p><\/dd>\n<dt id='edit%20flow%20doesn%27t%20do%20x%2C%20y%2C%20and%20z.%20that%20makes%20me%20sad.'><h3>Edit Flow doesn't do X, Y, and Z. That makes me sad.<\/h3><\/dt>\n<dd><p>All development happens on <a href=\"https:\/\/github.com\/Automattic\/Edit-Flow\">GitHub<\/a>.<\/p>\n\n<p>For support questions, feedback and ideas, please use the <a href=\"http:\/\/wordpress.org\/tags\/edit-flow?forum_id=10\">WordPress.org forums<\/a>, which we look at often. For everything else, say <a href=\"mailto:&#x68;&#101;&#x6c;l&#111;&#x40;&#101;&#x64;&#105;&#x74;&#102;&#x6c;&#111;&#x77;&#046;&#x6f;r&#103;\">hello@editflow.org<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<p>See <a href=\"CHANGELOG.md\">CHANGELOG.md<\/a> for the full changelog.<\/p>","raw_excerpt":"Redefining your editorial workflow.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/1395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=1395"}],"author":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/automattic"}],"wp:attachment":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=1395"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=1395"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=1395"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=1395"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=1395"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=1395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}