{"id":19600,"date":"2012-08-24T16:41:36","date_gmt":"2012-08-24T16:41:36","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/liveblog\/"},"modified":"2026-01-14T11:52:39","modified_gmt":"2026-01-14T11:52:39","slug":"liveblog","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/liveblog\/","author":5279457,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.11.0","stable_tag":"1.11.0","tested":"6.9.4","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Liveblog","header_author":"WordPress.com VIP, Big Bite Creative and contributors","header_description":"","assets_banners_color":"","last_updated":"2026-01-14 11:52:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"http:\/\/wordpress.org\/extend\/plugins\/liveblog\/","header_author_uri":"https:\/\/github.com\/Automattic\/liveblog\/graphs\/contributors","rating":2.9,"author_block_rating":4.625,"active_installs":2000,"downloads":93754,"num_ratings":15,"support_threads":0,"support_threads_resolved":0,"author_block_count":6,"sections":["description","installation","changelog"],"tags":{"1.0":{"tag":"1.0","author":"batmoo","date":"2012-09-04 19:25:16"},"1.1":{"tag":"1.1","author":"batmoo","date":"2012-09-05 00:52:03"},"1.10.0":{"tag":"1.10.0","author":"automattic","date":"2026-01-06 11:22:17"},"1.11.0":{"tag":"1.11.0","author":"automattic","date":"2026-01-14 11:52:39"},"1.2":{"tag":"1.2","author":"nbachiyski","date":"2012-12-13 15:25:06"},"1.3":{"tag":"1.3","author":"nbachiyski","date":"2013-01-23 19:04:49"},"1.3.1":{"tag":"1.3.1","author":"philipjohn","date":"2015-03-02 17:01:27"},"1.4":{"tag":"1.4","author":"batmoo","date":"2015-03-03 22:59:24"},"1.4.1":{"tag":"1.4.1","author":"philipjohn","date":"2015-08-10 10:24:30"},"1.5":{"tag":"1.5","author":"philipjohn","date":"2016-07-31 13:36:02"},"1.5.1":{"tag":"1.5.1","author":"philipjohn","date":"2018-10-17 19:36:40"},"1.5.2":{"tag":"1.5.2","author":"philipjohn","date":"2018-10-17 19:36:40"},"1.5rc":{"tag":"1.5rc","author":"philipjohn","date":"2015-12-03 14:20:36"},"1.6":{"tag":"1.6","author":"philipjohn","date":"2018-10-17 19:36:40"},"1.7":{"tag":"1.7","author":"philipjohn","date":"2018-10-17 19:36:40"},"1.7.1":{"tag":"1.7.1","author":"philipjohn","date":"2018-10-17 19:36:40"},"1.8.0":{"tag":"1.8.0","author":"philipjohn","date":"2018-10-17 19:36:40"},"1.8.1":{"tag":"1.8.1","author":"philipjohn","date":"2018-10-17 19:36:40"},"1.8.2":{"tag":"1.8.2","author":"philipjohn","date":"2018-10-17 19:36:40"},"1.9":{"tag":"1.9","author":"philipjohn","date":"2018-09-27 13:47:03"},"1.9.1":{"tag":"1.9.1","author":"philipjohn","date":"2018-10-17 19:32:31"},"1.9.2":{"tag":"1.9.2","author":"philipjohn","date":"2018-11-09 13:57:18"},"1.9.3":{"tag":"1.9.3","author":"philipjohn","date":"2018-11-09 13:57:18"},"1.9.4":{"tag":"1.9.4","author":"philipjohn","date":"2018-12-07 11:57:25"},"1.9.6":{"tag":"1.9.6","author":"automattic","date":"2021-09-29 09:48:09"}},"upgrade_notice":[],"ratings":{"1":6,"2":1,"3":1,"4":3,"5":4},"assets_icons":[],"assets_banners":[],"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3439487,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/champions-league-final-live\\\/\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"liveblog\"},\"options\":{\"activate\":true}},{\"step\":\"setSiteOptions\",\"options\":{\"permalink_structure\":\"\\\/%postname%\\\/\"}},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Flush rewrite rules *\\\/ require_once 'wordpress\\\/wp-load.php'; flush_rewrite_rules(); ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Create the liveblog post *\\\/ require_once 'wordpress\\\/wp-load.php'; $post_id = wp_insert_post( array( 'post_title' => 'Champions League Final: Live Updates', 'post_name' => 'champions-league-final-live', 'post_content' => 'Follow our live coverage of tonight\\\\'s Champions League Final. Our team is reporting live from the stadium with real-time updates, key moments, and expert analysis throughout the match.', 'post_status' => 'publish', 'post_author' => 1, 'post_date' => date( 'Y-m-d H:i:s' ), ) ); update_post_meta( $post_id, 'liveblog', 1 ); update_option( 'liveblog_demo_post_id', $post_id ); ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Create reporter users *\\\/ require_once 'wordpress\\\/wp-load.php'; $reporter1 = wp_create_user( 'alex_reporter', 'password', 'alex@example.com' ); if ( ! is_wp_error( $reporter1 ) ) { $user = new WP_User( $reporter1 ); $user->set_role( 'editor' ); update_user_meta( $reporter1, 'first_name', 'Alex' ); update_user_meta( $reporter1, 'last_name', 'Martinez' ); wp_update_user( array( 'ID' => $reporter1, 'display_name' => 'Alex Martinez' ) ); } $reporter2 = wp_create_user( 'sam_analyst', 'password', 'sam@example.com' ); if ( ! is_wp_error( $reporter2 ) ) { $user = new WP_User( $reporter2 ); $user->set_role( 'editor' ); update_user_meta( $reporter2, 'first_name', 'Sam' ); update_user_meta( $reporter2, 'last_name', 'Chen' ); wp_update_user( array( 'ID' => $reporter2, 'display_name' => 'Sam Chen' ) ); } ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Create liveblog entries - Entry 1: Match start (Key Event) *\\\/ require_once 'wordpress\\\/wp-load.php'; $post_id = get_option( 'liveblog_demo_post_id' ); $reporter1 = get_user_by( 'login', 'alex_reporter' ); $entry_time = strtotime( '-45 minutes' ); $comment_id = wp_insert_comment( array( 'comment_post_ID' => $post_id, 'comment_content' => '<strong>KICK OFF!<\\\/strong> The referee blows the whistle and we are underway in the Champions League Final! The atmosphere here is absolutely electric. #UCLFinal #ChampionsLeague', 'comment_type' => 'liveblog', 'user_id' => $reporter1->ID, 'comment_author' => $reporter1->display_name, 'comment_author_email' => $reporter1->user_email, 'comment_approved' => 'liveblog', 'comment_date' => date( 'Y-m-d H:i:s', $entry_time ), 'comment_date_gmt' => gmdate( 'Y-m-d H:i:s', $entry_time ), ) ); update_comment_meta( $comment_id, 'is_liveblog_key_entry', 1 ); ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Entry 2: Early action *\\\/ require_once 'wordpress\\\/wp-load.php'; $post_id = get_option( 'liveblog_demo_post_id' ); $reporter2 = get_user_by( 'login', 'sam_analyst' ); $entry_time = strtotime( '-38 minutes' ); wp_insert_comment( array( 'comment_post_ID' => $post_id, 'comment_content' => 'Early pressure from the home side. They\\\\'re pressing high and forcing turnovers in dangerous areas. The away team struggling to get out of their own half in these opening minutes.', 'comment_type' => 'liveblog', 'user_id' => $reporter2->ID, 'comment_author' => $reporter2->display_name, 'comment_author_email' => $reporter2->user_email, 'comment_approved' => 'liveblog', 'comment_date' => date( 'Y-m-d H:i:s', $entry_time ), 'comment_date_gmt' => gmdate( 'Y-m-d H:i:s', $entry_time ), ) ); ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Entry 3: First goal (Key Event) *\\\/ require_once 'wordpress\\\/wp-load.php'; $post_id = get_option( 'liveblog_demo_post_id' ); $reporter1 = get_user_by( 'login', 'alex_reporter' ); $entry_time = strtotime( '-30 minutes' ); $comment_id = wp_insert_comment( array( 'comment_post_ID' => $post_id, 'comment_content' => '<strong>GOAL! 1-0!<\\\/strong> What a strike! A thunderous shot from outside the box flies into the top corner. The goalkeeper had no chance! The stadium erupts! #UCLFinal #Goal', 'comment_type' => 'liveblog', 'user_id' => $reporter1->ID, 'comment_author' => $reporter1->display_name, 'comment_author_email' => $reporter1->user_email, 'comment_approved' => 'liveblog', 'comment_date' => date( 'Y-m-d H:i:s', $entry_time ), 'comment_date_gmt' => gmdate( 'Y-m-d H:i:s', $entry_time ), ) ); update_comment_meta( $comment_id, 'is_liveblog_key_entry', 1 ); ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Entry 4: Analysis *\\\/ require_once 'wordpress\\\/wp-load.php'; $post_id = get_option( 'liveblog_demo_post_id' ); $reporter2 = get_user_by( 'login', 'sam_analyst' ); $entry_time = strtotime( '-25 minutes' ); wp_insert_comment( array( 'comment_post_ID' => $post_id, 'comment_content' => '<em>Tactical insight:<\\\/em> The away team is now forced to push forward, which could leave them vulnerable on the counter. Watch for those quick transitions - that\\\\'s where the danger will come from.', 'comment_type' => 'liveblog', 'user_id' => $reporter2->ID, 'comment_author' => $reporter2->display_name, 'comment_author_email' => $reporter2->user_email, 'comment_approved' => 'liveblog', 'comment_date' => date( 'Y-m-d H:i:s', $entry_time ), 'comment_date_gmt' => gmdate( 'Y-m-d H:i:s', $entry_time ), ) ); ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Entry 5: Yellow card *\\\/ require_once 'wordpress\\\/wp-load.php'; $post_id = get_option( 'liveblog_demo_post_id' ); $reporter1 = get_user_by( 'login', 'alex_reporter' ); $entry_time = strtotime( '-18 minutes' ); wp_insert_comment( array( 'comment_post_ID' => $post_id, 'comment_content' => 'Yellow card shown for a reckless challenge in midfield. Tempers are flaring now - this final is living up to the hype! The referee is going to have his hands full tonight. #UCLFinal', 'comment_type' => 'liveblog', 'user_id' => $reporter1->ID, 'comment_author' => $reporter1->display_name, 'comment_author_email' => $reporter1->user_email, 'comment_approved' => 'liveblog', 'comment_date' => date( 'Y-m-d H:i:s', $entry_time ), 'comment_date_gmt' => gmdate( 'Y-m-d H:i:s', $entry_time ), ) ); ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Entry 6: Half time (Key Event) *\\\/ require_once 'wordpress\\\/wp-load.php'; $post_id = get_option( 'liveblog_demo_post_id' ); $reporter1 = get_user_by( 'login', 'alex_reporter' ); $entry_time = strtotime( '-10 minutes' ); $comment_id = wp_insert_comment( array( 'comment_post_ID' => $post_id, 'comment_content' => '<strong>HALF TIME: 1-0<\\\/strong> An enthralling first half comes to an end. One goal separates the teams, but it could easily have been more. Stay with us for the second half - this one is far from over! #UCLFinal #HalfTime', 'comment_type' => 'liveblog', 'user_id' => $reporter1->ID, 'comment_author' => $reporter1->display_name, 'comment_author_email' => $reporter1->user_email, 'comment_approved' => 'liveblog', 'comment_date' => date( 'Y-m-d H:i:s', $entry_time ), 'comment_date_gmt' => gmdate( 'Y-m-d H:i:s', $entry_time ), ) ); update_comment_meta( $comment_id, 'is_liveblog_key_entry', 1 ); ?>\"},{\"step\":\"runPHP\",\"code\":\"<?php \\\/* Entry 7: Latest update *\\\/ require_once 'wordpress\\\/wp-load.php'; $post_id = get_option( 'liveblog_demo_post_id' ); $reporter2 = get_user_by( 'login', 'sam_analyst' ); $entry_time = strtotime( '-2 minutes' ); wp_insert_comment( array( 'comment_post_ID' => $post_id, 'comment_content' => 'The players are back on the pitch and ready for the second half. We\\\\'re hearing there might be a tactical change - keep refreshing for the latest updates as they happen!', 'comment_type' => 'liveblog', 'user_id' => $reporter2->ID, 'comment_author' => $reporter2->display_name, 'comment_author_email' => $reporter2->user_email, 'comment_approved' => 'liveblog', 'comment_date' => date( 'Y-m-d H:i:s', $entry_time ), 'comment_date_gmt' => gmdate( 'Y-m-d H:i:s', $entry_time ), ) ); delete_option( 'liveblog_demo_post_id' ); ?>\"},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":[],"tagged_versions":["1.0","1.1","1.10.0","1.11.0","1.2","1.3","1.3.1","1.4","1.4.1","1.5","1.5.1","1.5.2","1.5rc","1.6","1.7","1.7.1","1.8.0","1.8.1","1.8.2","1.9","1.9.1","1.9.2","1.9.3","1.9.4","1.9.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2606612,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2606612,"resolution":"2","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2606612,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":2606612,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":2606612,"resolution":"6","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":2606612,"resolution":"8","location":"assets","locale":""}},"screenshots":{"1":"The entry form is the simplest possible","2":"Writers can preview before posting","3":"New posts are highlighted","4":"Adding images is a matter of just drag-and-drop","5":"Dragged photos are automatically inserted","6":"Typical liveblog view"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[575],"plugin_category":[],"plugin_contributors":[77494,77504,78161,77545,79856,78261],"plugin_business_model":[],"class_list":["post-19600","plugin","type-plugin","status-publish","hentry","plugin_tags-liveblog","plugin_contributors-automattic","plugin_contributors-batmoo","plugin_contributors-garyj","plugin_contributors-johnjamesjacoby","plugin_contributors-nbachiyski","plugin_contributors-philipjohn","plugin_committers-automattic","plugin_committers-batmoo","plugin_committers-nbachiyski","plugin_support_reps-dartiss"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/liveblog.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/liveblog\/assets\/screenshot-1.png?rev=2606612","caption":"The entry form is the simplest possible"},{"src":"https:\/\/ps.w.org\/liveblog\/assets\/screenshot-2.png?rev=2606612","caption":"Writers can preview before posting"},{"src":"https:\/\/ps.w.org\/liveblog\/assets\/screenshot-4.png?rev=2606612","caption":"Adding images is a matter of just drag-and-drop"},{"src":"https:\/\/ps.w.org\/liveblog\/assets\/screenshot-5.png?rev=2606612","caption":"Dragged photos are automatically inserted"},{"src":"https:\/\/ps.w.org\/liveblog\/assets\/screenshot-6.png?rev=2606612","caption":"Typical liveblog view"},{"src":"https:\/\/ps.w.org\/liveblog\/assets\/screenshot-8.png?rev=2606612","caption":""}],"raw_content":"<!--section=description-->\n<p>Your readers want your updates as quickly as possible, and we think we provide the easiest and the most flexible publishing environment to make that happen. Sometimes though, that\u2019s just not enough.<\/p>\n\n<p>When you\u2019re covering a fast-paced event \u2014 the latest Apple unveiling, an F1 Grand Prix, or the Super Bowl \u2014 a full blog post for each individual update is a poor experience for your authors and your audience.<\/p>\n\n<p>The <a href=\"http:\/\/vip.wordpress.com\/liveblog-add-on\/\">WordPress.com VIP Liveblog Add-On<\/a> was purpose-built to address these issues specifically.<\/p>\n\n<p>Here\u2019s what makes it special:<\/p>\n\n<ul>\n<li>Post updates right from the front-end of your site (no need to use the <code>\/wp-admin<\/code> dashboard)<\/li>\n<li>Viewers of your Liveblog get new entries served to them instantly and automatically, without needing to refresh their browser.<\/li>\n<li>Your authors can drag-and-drop photos right into the Liveblog area, without needing to navigate to separate browser tabs or windows.<\/li>\n<li>There\u2019s no need for a separate site dedicated to liveblogging: <em>every<\/em> post can be a liveblog, even existing ones.<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/github.com\/Automattic\/liveblog#liveblog\">Check out our in-depth documentation.<\/a><\/p>\n\n<p>If you'd like to check out the code and contribute, <a href=\"https:\/\/github.com\/Automattic\/liveblog\">join us on github<\/a>, pull requests are more than welcome.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>liveblog<\/code> folder to your plugins directory (e.g. <code>\/wp-content\/plugins\/<\/code>)<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>You can enable the liveblog on any post's edit page<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<p>Please see the <a href=\"https:\/\/github.com\/Automattic\/liveblog\/blob\/master\/CHANGELOG.md\">changelog on Github<\/a>.<\/p>","raw_excerpt":"Empowers website owners to provide rich and engaging live event coverage to a large, distributed audience.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/19600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=19600"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/automattic"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=19600"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=19600"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=19600"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=19600"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=19600"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=19600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}