{"id":260739,"date":"2025-11-23T00:24:14","date_gmt":"2025-11-23T00:24:14","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/changelogify\/"},"modified":"2025-11-23T00:23:59","modified_gmt":"2025-11-23T00:23:59","slug":"changelogify","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/changelogify\/","author":20849806,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"trunk","tested":"6.8.5","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Changelogify","header_author":"Eric Swanson","header_description":"Automatic changelog generator from Simple History, WP Activity Log, or native WordPress events. Creates versioned changelog releases with customizable sections.","assets_banners_color":"49216f","last_updated":"2025-11-23 00:23:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.github.com\/erics1337\/changelogify","header_author_uri":"https:\/\/www.ericsdevportfolio.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":157,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"erics1337","date":"2025-11-23 00:34:22"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3401111,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3401111,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3401118,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3401118,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"sources\/changelog":{"name":"sources\/changelog","title":"Sources Changelog"},"changelogify\/changelog":{"name":"changelogify\/changelog","title":"Changelog"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[],"plugin_category":[],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-260739","plugin","type-plugin","status-publish","hentry","plugin_committers-erics1337"],"banners":{"banner":"https:\/\/ps.w.org\/changelogify\/assets\/banner-772x250.png?rev=3401118","banner_2x":"https:\/\/ps.w.org\/changelogify\/assets\/banner-1544x500.png?rev=3401118","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/changelogify\/assets\/icon-128x128.png?rev=3401111","icon_2x":"https:\/\/ps.w.org\/changelogify\/assets\/icon-256x256.png?rev=3401111","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Changelogify is a comprehensive WordPress plugin that automatically tracks and generates changelog releases from various event sources. It creates beautifully formatted changelogs with customizable sections (Added, Changed, Fixed, Removed, Security) and provides multiple ways to display them on your site.<\/p>\n\n<h3>Quick Start<\/h3>\n\n<ol>\n<li><p>Install &amp; Activate<\/p>\n\n<ul>\n<li>Upload <code>changelogify<\/code> to <code>\/wp-content\/plugins\/<\/code> and activate it in WordPress \u2192 Plugins.<\/li>\n<\/ul><\/li>\n<li><p>Configure Sources<\/p>\n\n<ul>\n<li>Go to WordPress Admin \u2192 Changelog \u2192 Settings.<\/li>\n<li>Choose event sources (Simple History, WP Activity Log, or Native WordPress events).<\/li>\n<\/ul><\/li>\n<li><p>Generate Your First Release<\/p>\n\n<ul>\n<li>Go to Changelog \u2192 Generate Release.<\/li>\n<li>Enter a version (e.g., <code>1.0.0<\/code>) and a date range (e.g., since last release), then click Generate.<\/li>\n<li>Review the generated content and Publish.<\/li>\n<\/ul><\/li>\n<li><p>Display the Changelog<\/p>\n\n<ul>\n<li>Gutenberg block: add the \u201cChangelog\u201d block to any page\/post and configure options.<\/li>\n<li><p>Shortcode:<\/p>\n\n<p><code>wordpress\n[changelog limit=\"5\" show_version=\"true\" show_date=\"true\"]<\/code><\/p><\/li>\n<\/ul><\/li>\n<\/ol>\n\n<ul>\n<li>Archive: visit <code>\/changelog\/<\/code> to see all releases.<\/li>\n<\/ul>\n\n<ol>\n<li>Optional: Automation\n\n<ul>\n<li>In Changelog \u2192 Settings, enable automatic generation and pick a frequency (daily\/weekly via WP\u2011Cron).<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<h3>Features<\/h3>\n\n<h3>Event Source Adapters<\/h3>\n\n<ul>\n<li><strong>Simple History Integration<\/strong> - Pull events from Simple History plugin<\/li>\n<li><strong>WP Activity Log Integration<\/strong> - Pull events from WP Activity Log plugin<\/li>\n<li><strong>Native WordPress Events<\/strong> - Fallback tracking for core WordPress events\n\n<ul>\n<li>Post publishing<\/li>\n<li>Plugin activation\/deactivation<\/li>\n<li>Theme changes<\/li>\n<li>WordPress updates<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h3>Custom Post Type<\/h3>\n\n<ul>\n<li>Dedicated <code>changelog_release<\/code> post type<\/li>\n<li>Version field for semantic versioning<\/li>\n<li>Date range tracking<\/li>\n<li>Organized into sections: Added, Changed, Fixed, Removed, Security<\/li>\n<\/ul>\n\n<h3>Release Generator<\/h3>\n\n<ul>\n<li>Manual generation via admin button<\/li>\n<li>Automatic generation via WP-Cron (configurable)<\/li>\n<li>Date range options:\n\n<ul>\n<li>Since last release<\/li>\n<li>Custom date range<\/li>\n<li>Last 7\/30 days<\/li>\n<\/ul><\/li>\n<li>Smart version suggestion<\/li>\n<\/ul>\n\n<h3>Public Display<\/h3>\n\n<ul>\n<li><strong>Gutenberg Block<\/strong> - Add changelog to any page\/post<\/li>\n<li><strong>Shortcode<\/strong> - <code>[changelog limit=\"5\"]<\/code> with customizable attributes<\/li>\n<li><strong>Archive Template<\/strong> - Beautiful archive page for all releases<\/li>\n<li><strong>Single Template<\/strong> - Detailed view for each release<\/li>\n<\/ul>\n\n<h3>Settings<\/h3>\n\n<ul>\n<li>Configure which event sources to use<\/li>\n<li>Custom event-to-section mapping<\/li>\n<li>Default date range preferences<\/li>\n<li>WP-Cron automation settings<\/li>\n<\/ul>\n\n<h3>Usage<\/h3>\n\n<h3>Generating a Release<\/h3>\n\n<ol>\n<li>Navigate to <strong>Changelog \u2192 Generate Release<\/strong><\/li>\n<li>Enter the version number (e.g., 1.0.0)<\/li>\n<li>Choose date range (since last release or custom)<\/li>\n<li>Click \"Generate Release\"<\/li>\n<li>Review and publish the generated changelog<\/li>\n<\/ol>\n\n<h3>Displaying Changelogs<\/h3>\n\n<h4>Using the Gutenberg Block<\/h4>\n\n<ol>\n<li>Edit any page or post<\/li>\n<li>Add the \"Changelog\" block<\/li>\n<li>Configure display options in the sidebar<\/li>\n<li>Publish<\/li>\n<\/ol>\n\n<h4>Using the Shortcode<\/h4>\n\n<pre><code>`\n<\/code><\/pre>\n\n<p>[changelog limit=\"5\" show_version=\"true\" show_date=\"true\"]\n    `<\/p>\n\n<p><strong>Attributes:<\/strong>\n- <code>limit<\/code> - Number of releases to show (default: 5)\n- <code>show_version<\/code> - Display version numbers (default: true)\n- <code>show_date<\/code> - Display dates (default: true)\n- <code>version<\/code> - Show specific version only<\/p>\n\n<h4>Archive Page<\/h4>\n\n<p>Visit <code>\/changelog\/<\/code> on your site to see all releases.<\/p>\n\n<h3>Configuring Event Sources<\/h3>\n\n<ol>\n<li>Go to <strong>Changelog \u2192 Settings<\/strong><\/li>\n<li>Select which event sources to enable<\/li>\n<li>Configure custom event mappings<\/li>\n<li>Save settings<\/li>\n<\/ol>\n\n<h3>Automatic Generation<\/h3>\n\n<p>Enable WP-Cron automation:\n1. Go to <strong>Changelog \u2192 Settings<\/strong>\n2. Check \"Enable automatic changelog generation\"\n3. Choose frequency (daily or weekly)\n4. Save settings<\/p>\n\n<h3>Event Mapping<\/h3>\n\n<p>Map specific events to changelog sections:<\/p>\n\n<p><strong>Example:<\/strong>\n- <code>plugin_activated<\/code> \u2192 Changed\n- <code>plugin_uninstalled<\/code> \u2192 Removed\n- <code>wordpress_updated<\/code> \u2192 Security\n- <code>post_publish<\/code> \u2192 Added<\/p>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>WordPress 5.8 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<\/ul>\n\n<h3>Optional Dependencies<\/h3>\n\n<ul>\n<li>Simple History plugin (for enhanced event tracking)<\/li>\n<li>WP Activity Log plugin (for enhanced event tracking)<\/li>\n<\/ul>\n\n<h3>Filters &amp; Hooks<\/h3>\n\n<h3>Filters<\/h3>\n\n<pre><code>`php\n<\/code><\/pre>\n\n<p>\/\/ Modify event categorization\napply_filters('changelogify_event_category', $category, $event);<\/p>\n\n<p>\/\/ Modify release content\napply_filters('changelogify_release_content', $content, $sections);\n    `<\/p>\n\n<h3>Actions<\/h3>\n\n<pre><code>`php\n<\/code><\/pre>\n\n<p>\/\/ Before release generation\ndo_action('changelogify_before_generate_release', $version, $date_from, $date_to);<\/p>\n\n<p>\/\/ After release generation\ndo_action('changelogify_after_generate_release', $post_id, $version);\n    `<h3>Development<\/h3><\/p>\n\n<h3>File Structure<\/h3>\n\n<pre><code>`\n<\/code><\/pre>\n\n<p>changelogify\/\n\u251c\u2500\u2500 changelogify.php                # Main plugin file\n\u251c\u2500\u2500 includes\/\n\u2502   \u251c\u2500\u2500 class-cpt-changelog-release.php\n\u2502   \u251c\u2500\u2500 class-event-sources.php\n\u2502   \u251c\u2500\u2500 class-release-generator.php\n\u2502   \u251c\u2500\u2500 class-settings.php\n\u2502   \u2514\u2500\u2500 class-public-display.php\n\u251c\u2500\u2500 assets\/\n\u2502   \u251c\u2500\u2500 css\/\n\u2502   \u2502   \u2514\u2500\u2500 public.css\n\u2502   \u2514\u2500\u2500 js\/\n\u2502       \u2514\u2500\u2500 block.js\n\u251c\u2500\u2500 templates\/\n\u2502   \u251c\u2500\u2500 archive-changelog.php\n\u2502   \u2514\u2500\u2500 single-changelog.php\n\u2514\u2500\u2500 README.md\n    `<\/p>\n\n<h3>License<\/h3>\n\n<p>GPL v2 or later<\/p>\n\n<h3>Author<\/h3>\n\n<p>Eric Swanson - <a href=\"https:\/\/www.ericsdevportfolio.com\">Portfolio<\/a><\/p>\n\n<h3>Support<\/h3>\n\n<p>For issues and feature requests, please visit <a href=\"https:\/\/www.github.com\/erics1337\/changelogify\/issues\">GitHub Issues<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>changelogify<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to Changelog \u2192 Settings to configure event sources<\/li>\n<li>Go to Changelog \u2192 Generate Release to create your first changelog<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h3>1.0.3<\/h3>\n\n<ul>\n<li>Fix: Added <code>\/languages\/<\/code> directory and tightened admin enqueue param sanitization to satisfy plugin header checks.<\/li>\n<li>Fix: Replaced <code>wp_redirect()<\/code> calls with <code>wp_safe_redirect()<\/code> and ensured redirects exit immediately.<\/li>\n<li>Improvement: Prefixed template-scoped globals and escaped table names in direct SQL queries for better security\/compliance.<\/li>\n<\/ul>\n\n<h3>1.0.2<\/h3>\n\n<ul>\n<li>Change: Enqueue admin JavaScript via <code>admin_enqueue_scripts<\/code>; added <code>assets\/js\/admin.js<\/code>.<\/li>\n<li>Improvement: Removed inline <code>&lt;script&gt;<\/code> tags in admin pages and replaced with enqueued script for better performance and compatibility.<\/li>\n<li>Improvement: Localized labels for mapping UI options via <code>wp_localize_script<\/code>.<\/li>\n<li>Fix: Date range toggle on Generate page now handled without inline JS.<\/li>\n<\/ul>\n\n<h3>1.0.0<\/h3>\n\n<ul>\n<li>Initial release<\/li>\n<li>Simple History integration<\/li>\n<li>WP Activity Log integration<\/li>\n<li>Native WordPress event tracking<\/li>\n<li>Custom Post Type for releases<\/li>\n<li>Release generator with manual and cron options<\/li>\n<li>Gutenberg block<\/li>\n<li>Shortcode support<\/li>\n<li>Archive and single templates<\/li>\n<li>Settings page<\/li>\n<\/ul>\n\n<h3>1.0.1<\/h3>\n\n<ul>\n<li>Fix: updated readme and security checks<\/li>\n<\/ul>","raw_excerpt":"Automatically generate versioned changelogs from Simple History, WP Activity Log, or native WordPress events.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/260739","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=260739"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/erics1337"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=260739"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=260739"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=260739"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=260739"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=260739"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=260739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}