From 4a00227d30adfa70697396702ff43e0dcea3e8f4 Mon Sep 17 00:00:00 2001 From: Gary Jones Date: Mon, 12 Jan 2026 07:45:56 +0000 Subject: [PATCH] feat: add WordPress Playground blueprint for Live Preview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enable the "Live Preview" feature on wordpress.org by adding a blueprint that demonstrates Ad Code Manager's conditional targeting system. The blueprint creates: - Sample categories (Technology, Sports, Business) and posts - Five ad codes showcasing different conditional configurations: - Site-wide leaderboard (no conditionals) - Homepage-only banner (is_home) - Article sidebar (is_single) - Sports section ad (has_category) - Premium business ad (is_single AND has_category) Users land on the Settings → Ad Code Manager page to immediately see the admin interface with pre-configured demo content. Inspired by: https://github.com/Automattic/edit-flow/pull/885 Co-Authored-By: Claude Opus 4.5 --- .wordpress-org/blueprints/blueprint.json | 54 ++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .wordpress-org/blueprints/blueprint.json diff --git a/.wordpress-org/blueprints/blueprint.json b/.wordpress-org/blueprints/blueprint.json new file mode 100644 index 0000000..7df3d68 --- /dev/null +++ b/.wordpress-org/blueprints/blueprint.json @@ -0,0 +1,54 @@ +{ + "$schema": "https://playground.wordpress.net/blueprint-schema.json", + "landingPage": "/wp-admin/options-general.php?page=ad-code-manager", + "preferredVersions": { + "php": "8.2", + "wp": "latest" + }, + "phpExtensionBundles": [ "kitchen-sink" ], + "steps": [ + { + "step": "installPlugin", + "pluginData": { + "resource": "wordpress.org/plugins", + "slug": "ad-code-manager" + }, + "options": { + "activate": true + } + }, + { + "step": "runPHP", + "code": " 'technology', 'description' => 'Tech news and reviews' ) ); wp_insert_term( 'Sports', 'category', array( 'slug' => 'sports', 'description' => 'Sports coverage' ) ); wp_insert_term( 'Business', 'category', array( 'slug' => 'business', 'description' => 'Business and finance' ) ); ?>" + }, + { + "step": "runPHP", + "code": " 'Latest Tech Innovations', 'post_content' => 'Exploring the newest technology trends.', 'post_status' => 'publish', 'post_category' => array( $tech_cat->term_id ), ) ); wp_insert_post( array( 'post_title' => 'Championship Finals Preview', 'post_content' => 'Everything you need to know about the upcoming finals.', 'post_status' => 'publish', 'post_category' => array( $sports_cat->term_id ), ) ); wp_insert_post( array( 'post_title' => 'Market Report: Q4 Results', 'post_content' => 'Analysis of quarterly business performance.', 'post_status' => 'publish', 'post_category' => array( $business_cat->term_id ), ) ); wp_insert_post( array( 'post_title' => 'Sports Tech: Wearables Revolution', 'post_content' => 'How technology is changing athletics.', 'post_status' => 'publish', 'post_category' => array( $tech_cat->term_id, $sports_cat->term_id ), ) ); ?>" + }, + { + "step": "runPHP", + "code": " 'acm-code', 'post_title' => 'Site-wide Leaderboard', 'post_status' => 'publish', ) ); if ( ! is_wp_error( $ad_code_id ) ) { update_post_meta( $ad_code_id, 'site_name', 'demo-site' ); update_post_meta( $ad_code_id, 'zone1', 'leaderboard' ); update_post_meta( $ad_code_id, 'priority', 10 ); update_post_meta( $ad_code_id, 'operator', 'OR' ); } ?>" + }, + { + "step": "runPHP", + "code": " 'acm-code', 'post_title' => 'Homepage Banner', 'post_status' => 'publish', ) ); if ( ! is_wp_error( $ad_code_id ) ) { update_post_meta( $ad_code_id, 'site_name', 'demo-site' ); update_post_meta( $ad_code_id, 'zone1', 'homepage-banner' ); update_post_meta( $ad_code_id, 'priority', 5 ); update_post_meta( $ad_code_id, 'operator', 'AND' ); update_post_meta( $ad_code_id, 'conditionals', array( array( 'function' => 'is_home', 'arguments' => array() ) ) ); } ?>" + }, + { + "step": "runPHP", + "code": " 'acm-code', 'post_title' => 'Article Sidebar', 'post_status' => 'publish', ) ); if ( ! is_wp_error( $ad_code_id ) ) { update_post_meta( $ad_code_id, 'site_name', 'demo-site' ); update_post_meta( $ad_code_id, 'zone1', 'article-sidebar' ); update_post_meta( $ad_code_id, 'priority', 10 ); update_post_meta( $ad_code_id, 'operator', 'AND' ); update_post_meta( $ad_code_id, 'conditionals', array( array( 'function' => 'is_single', 'arguments' => array() ) ) ); } ?>" + }, + { + "step": "runPHP", + "code": " 'acm-code', 'post_title' => 'Sports Section Ad', 'post_status' => 'publish', ) ); if ( ! is_wp_error( $ad_code_id ) ) { update_post_meta( $ad_code_id, 'site_name', 'demo-site' ); update_post_meta( $ad_code_id, 'zone1', 'sports-zone' ); update_post_meta( $ad_code_id, 'priority', 15 ); update_post_meta( $ad_code_id, 'operator', 'AND' ); update_post_meta( $ad_code_id, 'conditionals', array( array( 'function' => 'has_category', 'arguments' => array( 'sports' ) ) ) ); } ?>" + }, + { + "step": "runPHP", + "code": " 'acm-code', 'post_title' => 'Premium Business Ad', 'post_status' => 'publish', ) ); if ( ! is_wp_error( $ad_code_id ) ) { update_post_meta( $ad_code_id, 'site_name', 'demo-site' ); update_post_meta( $ad_code_id, 'zone1', 'premium-zone' ); update_post_meta( $ad_code_id, 'priority', 20 ); update_post_meta( $ad_code_id, 'operator', 'AND' ); update_post_meta( $ad_code_id, 'conditionals', array( array( 'function' => 'is_single', 'arguments' => array() ), array( 'function' => 'has_category', 'arguments' => array( 'business' ) ) ) ); } ?>" + }, + { + "step": "login", + "username": "admin", + "password": "password" + } + ] +}