[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fKJZKDIrhfWmsv8ZSCBpidCZxxLRkQKn5bQY2hjtXkVg":3,"$fLQkrY2IHqM_jP8PydYRx7Vfh6rsllZc69qqJbSvGR08":687,"$fLvSWV07-fzKwfjvhasEvT-RdkSewStQUzekOn8rx9Gk":691},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"discovery_status":30,"vulnerabilities":31,"developer":32,"crawl_stats":28,"alternatives":38,"analysis":144,"fingerprints":640},"content-forge","Content Forge – Generate realistic dummy content, posts, comments, users, taxonomies, and pages","1.4.2","sapayth","https:\u002F\u002Fprofiles.wordpress.org\u002Fsapayth\u002F","\u003Cp>Content Forge is a powerful WordPress plugin designed for developers and site builders who need to quickly generate realistic dummy content for testing and development purposes. Choose between AI-powered content generation (using OpenAI, Anthropic, or Google) for high-quality, contextually relevant content, or use traditional generation methods for quick content creation. Whether you’re building a new theme, testing functionality, or demonstrating a website, Content Forge provides an easy way to populate your WordPress site with meaningful fake data.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Optional AI-powered content generation using OpenAI, Anthropic, and Google\u003C\u002Fli>\n\u003Cli>Traditional content generation (no AI required)\u003C\u002Fli>\n\u003Cli>Generate fake posts with realistic titles, content, metadata, and excerpts\u003C\u002Fli>\n\u003Cli>Create dummy pages with hierarchical structure\u003C\u002Fli>\n\u003Cli>Generate featured images using Picsum and Placehold.co\u003C\u002Fli>\n\u003Cli>Generate test users with various roles and capabilities\u003C\u002Fli>\n\u003Cli>Create fake taxonomies (categories and tags)\u003C\u002Fli>\n\u003Cli>Generate realistic comments and comment threads\u003C\u002Fli>\n\u003Cli>Bulk generation capabilities for efficient testing\u003C\u002Fli>\n\u003Cli>Clean and intuitive admin interface\u003C\u002Fli>\n\u003Cli>Follows WordPress coding standards\u003C\u002Fli>\n\u003Cli>Translation ready\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Use Cases\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Theme development and testing\u003C\u002Fli>\n\u003Cli>Plugin development\u003C\u002Fli>\n\u003Cli>Client demonstrations\u003C\u002Fli>\n\u003Cli>Performance testing with large datasets\u003C\u002Fli>\n\u003Cli>Content structure planning\u003C\u002Fli>\n\u003Cli>Training and educational purposes\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>Content Forge uses Feedio to collect some telemetry data upon user’s confirmation. This helps us to troubleshoot problems faster & make product improvements.\u003Cbr \u002F>\nFeedio does not gather any data by default. Feedio only starts gathering basic telemetry data when a user allows it via the admin notice. We collect the data to ensure great user experience for all our users.\u003C\u002Fp>\n\u003Cp>Integrating Feedio DOES NOT IMMEDIATELY start gathering data, without confirmation from users in any case.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n","Generate realistic dummy posts, pages, users, and comments. Choose AI-powered or traditional generation methods for development and testing.",10,985,100,1,"2026-03-17T09:28:00.000Z","6.9.4","5.6","7.4",[20,21,22,23,24],"development","dummy-content","fake-data","generator","testing","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontent-forge.1.4.2.zip",0,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":13,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},5,20,30,94,"2026-05-19T23:28:45.994Z",[39,60,84,106,125],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":49,"num_ratings":50,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":54,"tags":55,"homepage":58,"download_link":59,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"fakerpress","FakerPress","0.9.0","Gustavo Bordoni","https:\u002F\u002Fprofiles.wordpress.org\u002Fbordoni\u002F","\u003Cp>Whenever you create a new Theme or Plugin you will always need to create custom data to test whether your plugin is working or not, and as Developers ourselves we had this problem quite alot.\u003C\u002Fp>\n\u003Cp>Our goal with this plugin is to fill this gap where you have problem with a good solution both for Developers and for Users of WordPress.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Note: This plugin requires PHP 8.1 or higher to be activated.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Ffakerpress.com\u002Fr\u002Fgithub\" rel=\"nofollow ugc\">\u003Cstrong>Checkout our GitHub Repository\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Components Included\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Posts\u003C\u002Fli>\n\u003Cli>Custom Post Types\u003C\u002Fli>\n\u003Cli>Meta Data\u003C\u002Fli>\n\u003Cli>Featured Image\u003C\u002Fli>\n\u003Cli>Users\u003C\u002Fli>\n\u003Cli>Tags\u003C\u002Fli>\n\u003Cli>Categories\u003C\u002Fli>\n\u003Cli>Comments\u003C\u002Fli>\n\u003Cli>Custom Comment Types\u003C\u002Fli>\n\u003Cli>Attachments (NEW)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Creating Dummy Content\u003C\u002Fh4>\n\u003Cp>Normally a WordPress developer will need to perform the task of filling up an empty theme with dummy content, and doing this manually can be really time consuming, the main reasons this plugin was create was to speed up this process.\u003C\u002Fp>\n\u003Ch4>Random Featured Images\u003C\u002Fh4>\n\u003Cp>Create randomly generated attachments as the Featured Images for your WordPress dummy content.\u003C\u002Fp>\n\u003Ch4>Create random Meta Information\u003C\u002Fh4>\n\u003Cp>WordPress has Meta for Users, Posts, Terms and Comments, FakerPress will allow you to generate custom dummy meta for all four, with \u003Cem>20 types of Data\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch4>Delete the Content Generated\u003C\u002Fh4>\n\u003Cp>After you are done with your testing it should be easy to delete all the content created using FakerPress, now you will be able to do it.\u003C\u002Fp>\n\u003Ch4>Generate Random HTML\u003C\u002Fh4>\n\u003Cp>When creating dummy posts what you really want is that the HTML is really random so that you might see bugs that an XML import wouldn’t.\u003C\u002Fp>\n\u003Ch4>Generate Images in your HTML\u003C\u002Fh4>\n\u003Cp>When you are testing your website images are important, so FakerPress will allow you to output Images to your HTML tests.\u003C\u002Fp>\n\u003Ch4>Real Browser data on User Comments\u003C\u002Fh4>\n\u003Cp>For comments our plugin is prepared to generate a real Browser data instead of leaving the field empty.\u003C\u002Fp>\n\u003Ch4>Random Terms generation\u003C\u002Fh4>\n\u003Cp>For creating and assigning the terms you will have a much better tool that will allow you to select which kind of taxonomy you want to assign to your posts, and leaving the randomization to the plugin’s code.\u003C\u002Fp>\n\u003Ch4>Real random User profiles\u003C\u002Fh4>\n\u003Cp>If you fill up your WordPress with any data for the user profiles you might not catch an edge case, this plugin will fill up the fields with data that will really matter in the tests.\u003C\u002Fp>\n\u003Ch4>Modern REST API\u003C\u002Fh4>\n\u003Cp>FakerPress now includes a comprehensive REST API for programmatic content generation. All modules support REST endpoints with batching capabilities for large-scale generation. Full OpenAPI documentation is available at \u003Ccode>\u002Fwp-json\u002Ffakerpress\u002Fv1\u002Fdocs\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch4>Generate Attachments\u003C\u002Fh4>\n\u003Cp>Create realistic image attachments with customizable dimensions, multiple image providers (Placehold.co, Lorem Picsum), and automatic generation of alt text, captions, and descriptions. All images include proper attribution – Lorem Picsum images credit the original Unsplash photographers.\u003C\u002Fp>\n\u003Ch4>Types of Meta Included\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Attachment\u003C\u002Fli>\n\u003Cli>WP_Query\u003C\u002Fli>\n\u003Cli>Number\u003C\u002Fli>\n\u003Cli>Elements\u003C\u002Fli>\n\u003Cli>Letter\u003C\u002Fli>\n\u003Cli>Words\u003C\u002Fli>\n\u003Cli>Text\u003C\u002Fli>\n\u003Cli>HTML\u003C\u002Fli>\n\u003Cli>Lexify\u003C\u002Fli>\n\u003Cli>Asciify\u003C\u002Fli>\n\u003Cli>Regexify\u003C\u002Fli>\n\u003Cli>Person\u003C\u002Fli>\n\u003Cli>Geo Information\u003C\u002Fli>\n\u003Cli>Company\u003C\u002Fli>\n\u003Cli>Date\u003C\u002Fli>\n\u003Cli>TimeZone\u003C\u002Fli>\n\u003Cli>Email\u003C\u002Fli>\n\u003Cli>Domain\u003C\u002Fli>\n\u003Cli>IP\u003C\u002Fli>\n\u003Cli>Browser User Agent\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Languages\u003C\u002Fh4>\n\u003Cp>We moved away from \u003Cem>Transifex\u003C\u002Fem> due to the new GlotPress on WordPress.org, so if you want to translate FakerPress to your language please \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fpolyglots\u002Fhandbook\u002Frosetta\u002Ftheme-plugin-directories\u002F#translating-themes-plugins\" rel=\"nofollow ugc\">follow this guidelines\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>See room for improvement?\u003C\u002Fh4>\n\u003Cp>Great! There are several ways you can get involved to help make FakerPress better:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Report Bugs:\u003C\u002Fstrong> If you find a bug, error or other problem, please report it! You can do this by \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Ffakerpress\" rel=\"ugc\">creating a new topic\u003C\u002Fa> in the plugin forum. Once a developer can verify the bug by reproducing it, they will create an official bug report in GitHub where the bug will be worked on.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Suggest New Features:\u003C\u002Fstrong> Have an awesome idea? Please share it! Simply \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Ffakerpress\" rel=\"ugc\">create a new topic\u003C\u002Fa> in the plugin forum to express your thoughts on why the feature should be included and get a discussion going around your idea.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Issue Pull Requests:\u003C\u002Fstrong> If you’re a developer, the easiest way to get involved is to help out on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbordoni\u002Ffakerpress\u002Fissues\" rel=\"nofollow ugc\">issues already reported\u003C\u002Fa> in GitHub. Be sure to check out the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbordoni\u002Ffakerpress\u002Fblob\u002Fmaster\u002Fcontributing.md\" rel=\"nofollow ugc\">contributing guide\u003C\u002Fa> for developers.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Thank you for wanting to make FakerPress better for everyone! \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8fPf6L0XNvM\" rel=\"nofollow ugc\">We salute you\u003C\u002Fa>.\u003C\u002Fp>\n","FakerPress is a clean way to generate fake and dummy content to your WordPress, great for developers who need testing",10000,743470,98,205,"2026-03-09T12:12:00.000Z","7.0","5.5","8.1",[56,21,23,57,24],"developer","lorem-ipsun","https:\u002F\u002Ffakerpress.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffakerpress.0.9.0.zip",{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":68,"downloaded":69,"rating":70,"num_ratings":71,"last_updated":72,"tested_up_to":73,"requires_at_least":74,"requires_php":18,"tags":75,"homepage":80,"download_link":81,"security_score":82,"vuln_count":33,"unpatched_count":27,"last_vuln_date":83,"fetched_at":29},"wp-dummy-content-generator","WP Dummy Content Generator","4.0.0","Deepak anand","https:\u002F\u002Fprofiles.wordpress.org\u002Fdeepakanand767\u002F","\u003Cp>The “WP Dummy Content Generator” plugin is a powerful tool designed for WordPress websites. Its primary purpose is to generate dummy content, such as posts, custom post types, and media files, to populate your website during development or testing phases.\u003C\u002Fp>\n\u003Cp>This plugin offers a user-friendly interface that allows you to customize the type, quantity, and characteristics of the dummy content you want to generate. You can specify the number of posts, assign categories or tags, and even include featured images.\u003C\u002Fp>\n\u003Cp>One of the notable features of this plugin is its ability to delete all the generated content with a single click. This makes it convenient to remove the dummy data once you no longer need it, ensuring a clean and streamlined website.\u003C\u002Fp>\n\u003Cp>The “WP Dummy Content Generator” plugin is particularly useful for developers, designers, and website administrators who want to quickly populate their WordPress site with realistic dummy content. It saves time and effort by automatically generating content that mimics real posts, enabling you to focus on other aspects of website development or testing.\u003C\u002Fp>\n\u003Cp>Overall, this plugin simplifies the process of creating and managing dummy content, providing a handy solution for efficiently populating your WordPress website with test data.\u003C\u002Fp>\n\u003Ch3>🔥 What does this plugin offer?\u003C\u002Fh3>\n\u003Cp>The “WP Dummy Content Generator” plugin offers the following features and benefits:\u003C\u002Fp>\n\u003Cp>1) Dummy Content Generation: The plugin allows you to generate dummy content such as posts, custom post types, and media files for your WordPress website.\u003C\u002Fp>\n\u003Cp>2) Customization Options: You can customize the generated content by specifying the number of items to create, assigning categories or tags, including featured images, and adding custom fields.\u003C\u002Fp>\n\u003Cp>3) Efficient Content Management: The plugin simplifies the process of managing dummy content by providing a user-friendly interface and options to easily create, edit, and delete the generated content.\u003C\u002Fp>\n\u003Cp>4) Quick Content Deletion: With just a single click, you can delete all the generated dummy content from your website, ensuring a clean slate and saving time when you no longer need the test data.\u003C\u002Fp>\n\u003Cp>5) Time-saving Solution: By automating the generation of dummy content, the plugin saves you valuable time and effort that would otherwise be spent manually creating test content.\u003C\u002Fp>\n\u003Cp>6) Realistic Dummy Data: The generated content closely mimics real posts, providing a more authentic representation of how your website will look and function with actual content.\u003C\u002Fp>\n\u003Cp>7) Testing and Development: The plugin is particularly useful during website testing and development stages, as it helps populate your site with realistic test data for a more accurate evaluation of design, functionality, and performance.\u003C\u002Fp>\n\u003Cp>8) Developer-Friendly: The plugin caters to developers, designers, and website administrators, providing a convenient tool for populating websites with test content during the development process.\u003C\u002Fp>\n\u003Ch3>🛠️ HOW DOES “WP Dummy Content Generator” WORK?\u003C\u002Fh3>\n\u003Cp>It’s rather simple really – once you install the plugin, you can begin using it. On the left menu, you will get an admin menu page with name “Dummy Data Generator”. This will take you to the dashboard page of the plugin from where you can choose to generate dummy posts, users or woocommerce products.\u003C\u002Fp>\n\u003Ch3>Worried about deleting dummy data generated by our plugin?\u003C\u002Fh3>\n\u003Cp>Rest assured, the process of deleting the dummy data generated by our plugin is designed to be safe, reliable, and hassle-free. You can confidently remove all the generated content with ease and peace of mind. Our plugin ensures that the deletion process is handled smoothly, allowing you to maintain a clean and streamlined website whenever needed.\u003C\u002Fp>\n\u003Ch3>🔒 GDPR AND PRIVACY\u003C\u002Fh3>\n\u003Cp>WP Dummy Content Generator plugin is GDPR compliant:\u003Cbr \u002F>\n– We do not store any visitor or user data.\u003Cbr \u002F>\n– We do not send any data to remote servers.\u003Cbr \u002F>\n– Our plugin is only used to generate dummy posts, custom posts, users and woocommerce products.\u003C\u002Fp>\n\u003Cblockquote>\u003Cp>\n  Note: This plugin is now compatible with PHP version 8.\n\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Cp>✨ If you face any issue with your install, kindly raise a ticket so we can fix the issue ASAP. ✨\u003C\u002Fp>\n","Generate realistic dummy content for WordPress quickly. Ideal for developers and designers to populate sites for testing and development.",7000,144676,92,22,"2025-05-16T04:49:00.000Z","6.7.5","6.0",[76,77,78,79,61],"dummy-content-generation-for-wordpress","dummy-posts-and-custom-posts","woocommerce-products","wordpress-dummy-content-plugin","https:\u002F\u002Fwpdcg.online\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-dummy-content-generator.zip",83,"2025-06-16 00:00:00",{"slug":85,"name":86,"version":87,"author":88,"author_profile":89,"description":90,"short_description":91,"active_installs":92,"downloaded":93,"rating":94,"num_ratings":95,"last_updated":96,"tested_up_to":97,"requires_at_least":98,"requires_php":17,"tags":99,"homepage":103,"download_link":104,"security_score":105,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"sf-adminbar-tools","Admin Bar Tools","4.0","Grégory Viguier","https:\u002F\u002Fprofiles.wordpress.org\u002Fgreglone\u002F","\u003Cp>The plugin adds a new tab in your admin bar with simple but useful indications and tools.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Displays the number of queries in your page and the amount of time to generate the page.\u003C\u002Fli>\n\u003Cli>Displays the php memory usage and php memory limits (constants \u003Ccode>WP_MEMORY_LIMIT\u003C\u002Fcode> and \u003Ccode>WP_MAX_MEMORY_LIMIT\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>displays the php version and WP version.\u003C\u002Fli>\n\u003Cli>Displays \u003Ccode>WP_DEBUG\u003C\u002Fcode>, \u003Ccode>SCRIPT_DEBUG\u003C\u002Fcode>, \u003Ccode>WP_DEBUG_LOG\u003C\u002Fcode>, \u003Ccode>WP_DEBUG_DISPLAY\u003C\u002Fcode>, and error reporting values.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>In your site front-end:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Lists the template and all template parts used in the current page (template parts added with \u003Ccode>get_template_part()\u003C\u002Fcode>). Compatible with WooCommerce’s templates.\u003C\u002Fli>\n\u003Cli>\u003Ccode>$wp_query\u003C\u002Fcode>: this will open a lightbox displaying the content of \u003Ccode>$wp_query\u003C\u002Fcode>. Click the lightbox title to reload the value, click outside the lightbox to close it.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>In your site administration:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Admin hooks: lists some oftenly used hooks (like \u003Ccode>admin_init\u003C\u002Fcode>). The indicator to the right of the line tells you how many times the hook has been triggered by a callback. A “P” means the hook has a parameter: hover it for more details. Click a hook (on its text) to auto-select its code, for example: click \u003Cem>admin_init\u003C\u002Fem> to select \u003Ccode>add_action( 'admin_init', '' );\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Ccode>$current_screen\u003C\u002Fcode>: displays the value of 4 properties of this object: \u003Ccode>id\u003C\u002Fcode>, \u003Ccode>base\u003C\u002Fcode>, \u003Ccode>parent_base\u003C\u002Fcode>, \u003Ccode>parent_file\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Ccode>$...now\u003C\u002Fcode>: displays the value of the well-known variables \u003Ccode>$pagenow\u003C\u002Fcode>, \u003Ccode>$typenow\u003C\u002Fcode>, and \u003Ccode>$taxnow\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>On a user profile page, \u003Ccode>$userdata\u003C\u002Fcode>: : this will open a lightbox displaying the user’s data.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can decide who’s gonna use this plugin (go to your profile page for all the settings). This way, the plugin’s items won’t show up to other users (your client for example).\u003Cbr \u002F>\nAlso, a new menu item \u003Ccode>Code Tester\u003C\u002Fcode> will appear. There you are able to do some tests with your code.\u003C\u002Fp>\n","Adds some small development tools to the admin bar.",400,15233,96,8,"2021-01-18T16:09:00.000Z","5.6.0","4.7",[100,20,101,24,102],"debug","query","tests","https:\u002F\u002Fwww.screenfeed.fr\u002Fsf-abt\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsf-adminbar-tools.zip",85,{"slug":107,"name":108,"version":109,"author":110,"author_profile":111,"description":112,"short_description":113,"active_installs":114,"downloaded":115,"rating":13,"num_ratings":11,"last_updated":116,"tested_up_to":52,"requires_at_least":117,"requires_php":25,"tags":118,"homepage":123,"download_link":124,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"easy-populate-posts","Easy Populate Posts","4.4.5","Iulia Cazan","https:\u002F\u002Fprofiles.wordpress.org\u002Fiulia-cazan\u002F","\u003Cp>Populate the sites with random content (configurable type, with tags, meta, terms, images, publish date, status, parent, sticky, gutenberg template).\u003C\u002Fp>\n\u003Ch3>Hooks\u003C\u002Fh3>\n\u003Cp>\u003Ccode>spp_prepare_post_data\u003C\u002Fcode>, \u003Ccode>spp_after_post_inserted\u003C\u002Fcode>, \u003Ccode>spp_after_post_updated\u003C\u002Fcode>, \u003Ccode>spp_before_post_image_attached\u003C\u002Fcode>, \u003Ccode>spp_after_post_image_attached\u003C\u002Fcode>, \u003Ccode>spp_after_post_processed\u003C\u002Fcode>, \u003Ccode>spp_filter_remove_update_info\u003C\u002Fcode>, \u003Ccode>spp_filter_remove_donate_info\u003C\u002Fcode>, \u003Ccode>spp_filter_post_statuses\u003C\u002Fcode>, \u003Ccode>spp_filter_post_taxonomies\u003C\u002Fcode>, \u003Ccode>spp_filter_acf_fields\u003C\u002Fcode>, \u003Ccode>spp_filter_post_meta\u003C\u002Fcode>, \u003Ccode>spp_filter_name_elements\u003C\u002Fcode>, \u003Ccode>spp_max_options_tax\u003C\u002Fcode>, \u003Ccode>spp_max_options_meta\u003C\u002Fcode>, \u003Ccode>spp_meta_value\u003C\u002Fcode>, \u003Ccode>spp_max_fields\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\u003C\u002Fp>\n","Populate the sites with random content: title, type, terms, meta, images, status, date, parent, sticky, Gutenberg template, etc.",200,28025,"2026-04-11T10:15:00.000Z","4.8",[119,21,120,121,122],"content-generator","generate-content","populate-posts","random-content","https:\u002F\u002Fiuliacazan.ro\u002Feasy-populate-posts\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-populate-posts.4.4.5.zip",{"slug":126,"name":127,"version":128,"author":129,"author_profile":130,"description":131,"short_description":132,"active_installs":114,"downloaded":133,"rating":13,"num_ratings":134,"last_updated":135,"tested_up_to":16,"requires_at_least":136,"requires_php":18,"tags":137,"homepage":142,"download_link":143,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"eli-php-compatibility-scanner","Eli's PHP Compatibility Scanner","1.1.2","Eli Hanna","https:\u002F\u002Fprofiles.wordpress.org\u002Feliehanna\u002F","\u003Cp>\u003Cstrong>⚠️ Important: Development Environment Only\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This plugin is designed for development environments like LocalWP, XAMPP, or self-hosted servers. It will \u003Cstrong>not work\u003C\u002Fstrong> on most managed hosting providers (WP Engine, Kinsta, SiteGround, etc.) due to security restrictions that disable the \u003Ccode>exec()\u003C\u002Fcode> function and limit access to PHP binaries.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How It Works\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This plugin leverages \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsquizlabs\u002FPHP_CodeSniffer\" rel=\"nofollow ugc\">PHP_CodeSniffer\u003C\u002Fa> with the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FPHPCompatibility\u002FPHPCompatibility\" rel=\"nofollow ugc\">PHPCompatibility\u003C\u002Fa> standard to perform deep static analysis of your PHP code.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Core Components:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Bundled Dependencies\u003C\u002Fstrong>: Includes PHP_CodeSniffer and PHPCompatibility ruleset\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Batch Processing\u003C\u002Fstrong>: Scans files in configurable batches (10-100 files) to manage memory usage\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Command Execution\u003C\u002Fstrong>: Executes PHPCS via PHP’s \u003Ccode>exec()\u003C\u002Fcode> function with specific parameters\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Server-Side State\u003C\u002Fstrong>: Stores file lists in WordPress options to optimize AJAX requests\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Progressive UI\u003C\u002Fstrong>: Real-time batch results with stop\u002Fstart controls\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>How to Use:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Navigate to \u003Cstrong>Tools \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> PHP Compatibility Scanner\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Review the \u003Cstrong>System Check\u003C\u002Fstrong> section to ensure your environment is compatible\u003C\u002Fli>\n\u003Cli>Select the \u003Cstrong>plugins and\u002For themes\u003C\u002Fstrong> you want to scan by checking their boxes\u003C\u002Fli>\n\u003Cli>Configure your scan options:\n\u003Cul>\n\u003Cli>\u003Cstrong>Target PHP Version\u003C\u002Fstrong>: Choose the PHP version you want to test against (7.4 – 8.4)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Batch Size\u003C\u002Fstrong>: Select how many files to process at once (default: 50 files)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Skip Vendor Directory\u003C\u002Fstrong>: Keep checked to skip third-party dependencies\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Click \u003Cstrong>Start Scan\u003C\u002Fstrong> to begin the compatibility check\u003C\u002Fli>\n\u003Cli>View results in real-time as each plugin\u002Ftheme is scanned\u003C\u002Fli>\n\u003Cli>Review any \u003Cstrong>errors\u003C\u002Fstrong> (❌) or \u003Cstrong>warnings\u003C\u002Fstrong> (⚠️) found in your code\u003C\u002Fli>\n\u003Cli>Click on any target to expand and see detailed compatibility issues\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Why It Requires Development Environments\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ccode>exec()\u003C\u002Fcode> Function\u003C\u002Fstrong>: Required to run PHPCS binary – disabled on managed hosts\u003C\u002Fli>\n\u003Cli>\u003Cstrong>PHP Binary Access\u003C\u002Fstrong>: Needs access to PHP executable – restricted on shared hosting\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Composer Dependencies\u003C\u002Fstrong>: Requires vendor directory with PHPCS installation\u003C\u002Fli>\n\u003Cli>\u003Cstrong>File System Access\u003C\u002Fstrong>: Creates temporary files for batch processing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Memory\u002FTime Limits\u003C\u002Fstrong>: Long-running scans need relaxed execution limits\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Supported Environments\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>LocalWP\u003C\u002Fstrong> (recommended)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>XAMPP\u002FMAMP\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Docker WordPress\u003C\u002Fstrong> setups\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Self-hosted\u003C\u002Fstrong> VPS\u002Fdedicated servers\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Development\u003C\u002Fstrong> environments with shell access\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Unsupported Environments\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>WP Engine\u003C\u002Fstrong> (exec() disabled)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Kinsta\u003C\u002Fstrong> (security restrictions)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SiteGround\u003C\u002Fstrong> (managed hosting limitations)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GoDaddy Managed WordPress\u003C\u002Fstrong> (function restrictions)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WordPress.com\u003C\u002Fstrong> (no plugin uploads)\u003C\u002Fli>\n\u003Cli>Most \u003Cstrong>shared hosting\u003C\u002Fstrong> providers\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Contributing\u003C\u002Fh3>\n\u003Cp>This plugin is actively developed for WordPress development environments. Contributions are welcome, especially:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Additional PHP version compatibility rules\u003C\u002Fli>\n\u003Cli>Performance optimizations\u003C\u002Fli>\n\u003Cli>UI\u002FUX improvements\u003C\u002Fli>\n\u003Cli>Hosted environment compatibility solutions\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Technical Details\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Dependencies\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>PHP_CodeSniffer\u003C\u002Fstrong>: ^3.13 (static analysis engine)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>PHPCompatibility\u003C\u002Fstrong>: dev-develop (compatibility ruleset)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>License\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>GPLv2 or later – same as WordPress core.\u003C\u002Fp>\n","A comprehensive WordPress plugin that scans your plugins and themes for PHP version compatibility issues using the  PHPCompatibility ruleset.",1513,2,"2026-04-11T20:24:00.000Z","4.5",[138,139,140,24,141],"code-quality","compatibility","phpcs","wordpress-development","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Feli-php-compatibility-scanner","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feli-php-compatibility-scanner.1.1.2.zip",{"attackSurface":145,"codeSignals":537,"taintFlows":600,"riskAssessment":631,"analyzedAt":639},{"hooks":146,"ajaxHandlers":525,"restRoutes":532,"shortcodes":533,"cronEvents":534,"entryPointCount":14,"unprotectedCount":27},[147,153,158,162,166,170,173,175,178,182,187,193,197,201,204,206,208,211,213,214,217,219,221,225,230,233,235,237,241,245,249,254,257,260,262,264,266,267,270,274,279,283,287,291,295,298,302,305,309,312,315,319,324,328,332,334,337,341,346,350,354,357,362,366,368,370,372,377,381,384,388,392,395,398,401,404,407,412,414,418,422,426,428,430,431,435,438,443,447,449,451,453,457,461,463,465,467,471,473,474,478,481,484,488,491,493,496,500,502,504,508,511,514,517,520,522],{"type":148,"name":149,"callback":150,"file":151,"line":152},"action","init","load","content-forge.php",44,{"type":148,"name":154,"callback":155,"file":156,"line":157},"admin_menu","register_menu","includes\\Admin.php",24,{"type":148,"name":159,"callback":160,"file":156,"line":161},"admin_enqueue_scripts","enqueue_assets",25,{"type":148,"name":163,"callback":164,"file":156,"line":165},"wp_dashboard_setup","add_dashboard_widget",27,{"type":148,"name":167,"callback":168,"file":169,"line":35},"rest_api_init","register_routes","includes\\Api\\AI.php",{"type":148,"name":167,"callback":168,"file":171,"line":172},"includes\\Api\\Generation_Status.php",40,{"type":148,"name":167,"callback":168,"file":174,"line":35},"includes\\Api\\Post.php",{"type":148,"name":167,"callback":168,"file":176,"line":177},"includes\\Api\\Taxonomy.php",28,{"type":148,"name":167,"callback":179,"file":180,"line":181},"init_api","includes\\Api.php",35,{"type":148,"name":183,"callback":184,"priority":11,"file":185,"line":186},"cforge_cleanup_batch_data","cleanup_batch_data","includes\\Generator\\AI_Scheduled_Generator.php",47,{"type":188,"name":189,"callback":190,"priority":11,"file":191,"line":192},"filter","cforge_generate_post_title","filter_title","includes\\Integration\\EDD_Download_Content.php",123,{"type":188,"name":194,"callback":195,"priority":11,"file":191,"line":196},"cforge_generate_post_content","filter_content",124,{"type":188,"name":198,"callback":199,"priority":11,"file":191,"line":200},"cforge_generate_post_excerpt","filter_excerpt",125,{"type":188,"name":189,"callback":190,"priority":11,"file":202,"line":203},"includes\\Integration\\TEC_Event_Content.php",127,{"type":188,"name":194,"callback":195,"priority":11,"file":202,"line":205},128,{"type":188,"name":198,"callback":199,"priority":11,"file":202,"line":207},129,{"type":188,"name":189,"callback":190,"priority":11,"file":209,"line":210},"includes\\Integration\\WooCommerce_Product_Content.php",121,{"type":188,"name":194,"callback":195,"priority":11,"file":209,"line":212},122,{"type":188,"name":198,"callback":199,"priority":11,"file":209,"line":192},{"type":188,"name":189,"callback":190,"priority":11,"file":215,"line":216},"includes\\Integration\\WPUF_Subscription_Content.php",76,{"type":188,"name":194,"callback":195,"priority":11,"file":215,"line":218},77,{"type":188,"name":198,"callback":199,"priority":11,"file":215,"line":220},78,{"type":148,"name":149,"callback":222,"priority":34,"file":223,"line":224},"register_wpuf_subscription_integration","includes\\Loader.php",111,{"type":188,"name":226,"callback":227,"priority":11,"file":228,"line":229},"cforge_telemetry_data","add_plugin_name_to_data","includes\\Telemetry_Manager.php",72,{"type":188,"name":226,"callback":231,"priority":11,"file":228,"line":232},"add_inactive_plugins_to_data",74,{"type":188,"name":226,"callback":234,"priority":11,"file":228,"line":216},"remove_plugin_counts",{"type":188,"name":226,"callback":236,"priority":11,"file":228,"line":220},"add_additional_system_data",{"type":148,"name":238,"callback":239,"priority":11,"file":228,"line":240},"cforge_tracking_opt_in","log_telemetry_send",80,{"type":148,"name":242,"callback":243,"priority":34,"file":228,"line":244},"admin_init","remove_default_telemetry_notice",88,{"type":148,"name":246,"callback":247,"priority":11,"file":228,"line":248},"admin_notices","custom_telemetry_notice",89,{"type":148,"name":250,"callback":251,"priority":14,"file":252,"line":253},"plugins_loaded","initialize_latest_version","Lib\\action-scheduler\\action-scheduler.php",36,{"type":148,"name":250,"callback":255,"priority":27,"file":252,"line":256},"action_scheduler_register_3_dot_9_dot_3",39,{"type":148,"name":149,"callback":149,"priority":27,"file":258,"line":259},"Lib\\action-scheduler\\classes\\abstracts\\ActionScheduler.php",196,{"type":148,"name":149,"callback":149,"priority":14,"file":258,"line":261},197,{"type":148,"name":149,"callback":149,"priority":14,"file":258,"line":263},198,{"type":148,"name":149,"callback":149,"priority":14,"file":258,"line":265},199,{"type":148,"name":149,"callback":149,"priority":14,"file":258,"line":114},{"type":148,"name":149,"callback":268,"priority":14,"file":258,"line":269},"closure",202,{"type":148,"name":271,"callback":272,"file":258,"line":273},"action_scheduler\u002Fmigration_complete","ActionScheduler_WPCommentCleaner::maybe_schedule_cleanup",261,{"type":148,"name":275,"callback":276,"priority":11,"file":277,"line":278},"action_scheduler_canceled_action","log_canceled_action","Lib\\action-scheduler\\classes\\abstracts\\ActionScheduler_Logger.php",67,{"type":148,"name":280,"callback":281,"priority":11,"file":277,"line":282},"action_scheduler_begin_execute","log_started_action",68,{"type":148,"name":284,"callback":285,"priority":11,"file":277,"line":286},"action_scheduler_after_execute","log_completed_action",69,{"type":148,"name":288,"callback":289,"priority":11,"file":277,"line":290},"action_scheduler_failed_execution","log_failed_action",70,{"type":148,"name":292,"callback":293,"priority":11,"file":277,"line":294},"action_scheduler_failed_action","log_timed_out_action",71,{"type":148,"name":296,"callback":297,"priority":11,"file":277,"line":229},"action_scheduler_unexpected_shutdown","log_unexpected_shutdown",{"type":148,"name":299,"callback":300,"priority":11,"file":277,"line":301},"action_scheduler_reset_action","log_reset_action",73,{"type":148,"name":303,"callback":304,"priority":11,"file":277,"line":232},"action_scheduler_execution_ignored","log_ignored_action",{"type":148,"name":306,"callback":307,"priority":11,"file":277,"line":308},"action_scheduler_failed_fetch_action","log_failed_fetch_action",75,{"type":148,"name":310,"callback":311,"priority":11,"file":277,"line":216},"action_scheduler_failed_to_schedule_next_instance","log_failed_schedule_next_instance",{"type":148,"name":313,"callback":314,"priority":11,"file":277,"line":218},"action_scheduler_bulk_cancel_actions","bulk_log_cancel_actions",{"type":148,"name":316,"callback":317,"file":277,"line":318},"action_scheduler_stored_action","log_stored_action",84,{"type":148,"name":320,"callback":321,"file":322,"line":323},"woocommerce_admin_status_content_action-scheduler","render_admin_ui","Lib\\action-scheduler\\classes\\ActionScheduler_AdminView.php",56,{"type":148,"name":325,"callback":326,"file":322,"line":327},"woocommerce_system_status_report","system_status_report",57,{"type":188,"name":329,"callback":330,"file":322,"line":331},"woocommerce_admin_status_tabs","register_system_status_tab",58,{"type":148,"name":154,"callback":155,"file":322,"line":333},61,{"type":148,"name":246,"callback":335,"file":322,"line":336},"maybe_check_pastdue_actions",62,{"type":148,"name":338,"callback":339,"file":322,"line":340},"current_screen","add_help_tabs",63,{"type":188,"name":342,"callback":343,"priority":13,"file":344,"line":345},"action_scheduler_store_class","set_store_class","Lib\\action-scheduler\\classes\\ActionScheduler_DataController.php",190,{"type":188,"name":347,"callback":348,"priority":13,"file":344,"line":349},"action_scheduler_logger_class","set_logger_class",191,{"type":148,"name":351,"callback":352,"file":344,"line":353},"deactivate_plugin","mark_migration_incomplete",192,{"type":148,"name":355,"callback":356,"file":344,"line":261},"action_scheduler\u002Fprogress_tick","maybe_free_memory",{"type":148,"name":358,"callback":359,"file":360,"line":361},"shutdown","handle_unexpected_shutdown","Lib\\action-scheduler\\classes\\ActionScheduler_FatalErrorMonitor.php",45,{"type":148,"name":363,"callback":364,"priority":27,"file":360,"line":365},"action_scheduler_before_execute","track_current_action",46,{"type":148,"name":284,"callback":367,"priority":27,"file":360,"line":186},"untrack_action",{"type":148,"name":303,"callback":367,"priority":27,"file":360,"line":369},48,{"type":148,"name":288,"callback":367,"priority":27,"file":360,"line":371},49,{"type":148,"name":373,"callback":374,"priority":11,"file":375,"line":376},"action_scheduler\u002Fcreated_table","set_autoincrement","Lib\\action-scheduler\\classes\\ActionScheduler_ListTable.php",554,{"type":188,"name":378,"callback":379,"file":380,"line":229},"cron_schedules","add_wp_cron_schedule","Lib\\action-scheduler\\classes\\ActionScheduler_QueueRunner.php",{"type":148,"name":358,"callback":382,"file":380,"line":383},"maybe_dispatch_async_request",95,{"type":148,"name":385,"callback":386,"file":387,"line":177},"action_scheduler_init","schedule_recurring_scheduler_hook","Lib\\action-scheduler\\classes\\ActionScheduler_RecurringActionScheduler.php",{"type":148,"name":389,"callback":390,"priority":11,"file":391,"line":152},"pre_get_comments","filter_comment_queries","Lib\\action-scheduler\\classes\\ActionScheduler_WPCommentCleaner.php",{"type":148,"name":393,"callback":394,"priority":34,"file":391,"line":361},"wp_count_comments","filter_comment_count",{"type":148,"name":396,"callback":397,"priority":11,"file":391,"line":365},"comment_feed_where","filter_comment_feed",{"type":148,"name":399,"callback":400,"file":391,"line":371},"load-tools_page_action-scheduler","register_admin_notice",{"type":148,"name":402,"callback":400,"file":391,"line":403},"load-woocommerce_page_wc-status",50,{"type":148,"name":246,"callback":405,"file":391,"line":406},"print_admin_notice",109,{"type":148,"name":408,"callback":409,"priority":11,"file":410,"line":411},"action_scheduler_deleted_action","clear_deleted_action_logs","Lib\\action-scheduler\\classes\\data-stores\\ActionScheduler_DBLogger.php",112,{"type":148,"name":373,"callback":374,"priority":11,"file":413,"line":308},"Lib\\action-scheduler\\classes\\data-stores\\ActionScheduler_HybridStore.php",{"type":188,"name":415,"callback":416,"priority":11,"file":417,"line":207},"comments_clauses","filter_comment_query_clauses","Lib\\action-scheduler\\classes\\data-stores\\ActionScheduler_wpCommentLogger.php",{"type":148,"name":419,"callback":420,"priority":11,"file":417,"line":421},"action_scheduler_before_process_queue","disable_comment_counting",254,{"type":148,"name":423,"callback":424,"priority":11,"file":417,"line":425},"action_scheduler_after_process_queue","enable_comment_counting",255,{"type":148,"name":389,"callback":390,"priority":11,"file":417,"line":427},259,{"type":148,"name":393,"callback":394,"priority":34,"file":417,"line":429},260,{"type":148,"name":396,"callback":397,"priority":11,"file":417,"line":273},{"type":148,"name":432,"callback":433,"file":417,"line":434},"wp_insert_comment","delete_comment_count_cache",264,{"type":148,"name":436,"callback":433,"file":417,"line":437},"wp_set_comment_status",265,{"type":188,"name":439,"callback":440,"priority":11,"file":441,"line":442},"wp_insert_post_data","filter_insert_post_data","Lib\\action-scheduler\\classes\\data-stores\\ActionScheduler_wpPostStore.php",81,{"type":188,"name":444,"callback":445,"priority":11,"file":441,"line":446},"pre_wp_unique_post_slug","set_unique_post_slug",82,{"type":188,"name":444,"callback":445,"priority":11,"file":441,"line":448},518,{"type":188,"name":439,"callback":440,"priority":11,"file":441,"line":450},1006,{"type":188,"name":444,"callback":445,"priority":11,"file":441,"line":452},1007,{"type":188,"name":454,"callback":455,"file":441,"line":456},"action_scheduler_migration_dependencies_met","migration_dependencies_met",1094,{"type":148,"name":246,"callback":458,"priority":11,"file":459,"line":460},"display_migration_notice","Lib\\action-scheduler\\classes\\migration\\Controller.php",176,{"type":188,"name":342,"callback":462,"priority":13,"file":459,"line":345},"get_store_class",{"type":188,"name":347,"callback":464,"priority":13,"file":459,"line":349},"get_logger_class",{"type":148,"name":149,"callback":466,"file":459,"line":353},"maybe_hook_migration",{"type":148,"name":468,"callback":469,"file":459,"line":470},"wp_loaded","schedule_migration",193,{"type":148,"name":399,"callback":472,"priority":11,"file":459,"line":259},"hook_admin_notices",{"type":148,"name":402,"callback":472,"priority":11,"file":459,"line":261},{"type":148,"name":475,"callback":476,"priority":11,"file":477,"line":181},"action_scheduler_before_schema_update","update_schema_3_0","Lib\\action-scheduler\\classes\\schema\\ActionScheduler_LoggerSchema.php",{"type":148,"name":475,"callback":479,"priority":11,"file":480,"line":172},"update_schema_5_0","Lib\\action-scheduler\\classes\\schema\\ActionScheduler_StoreSchema.php",{"type":148,"name":408,"callback":482,"file":483,"line":172},"on_action_deleted","Lib\\action-scheduler\\classes\\WP_CLI\\Action\\Delete_Command.php",{"type":148,"name":303,"callback":485,"file":486,"line":487},"on_action_ignored","Lib\\action-scheduler\\classes\\WP_CLI\\Action\\Run_Command.php",42,{"type":148,"name":284,"callback":489,"file":486,"line":490},"on_action_executed",43,{"type":148,"name":288,"callback":492,"priority":11,"file":486,"line":152},"on_action_failed",{"type":148,"name":494,"callback":495,"priority":11,"file":486,"line":361},"action_scheduler_failed_validation","on_action_invalid",{"type":148,"name":363,"callback":497,"file":498,"line":499},"before_execute","Lib\\action-scheduler\\classes\\WP_CLI\\ActionScheduler_WPCLI_QueueRunner.php",87,{"type":148,"name":284,"callback":501,"priority":11,"file":498,"line":244},"after_execute",{"type":148,"name":288,"callback":503,"priority":11,"file":498,"line":248},"action_failed",{"type":148,"name":505,"callback":268,"file":506,"line":507},"action_scheduler\u002Fmigrate_action_dry_run","Lib\\action-scheduler\\classes\\WP_CLI\\Migration_Command.php",137,{"type":148,"name":509,"callback":268,"file":506,"line":510},"action_scheduler\u002Fno_action_to_migrate",144,{"type":148,"name":512,"callback":268,"file":506,"line":513},"action_scheduler\u002Fmigrate_action_failed",151,{"type":148,"name":515,"callback":268,"priority":11,"file":506,"line":516},"action_scheduler\u002Fmigrate_action_incomplete",158,{"type":148,"name":518,"callback":268,"priority":11,"file":506,"line":519},"action_scheduler\u002Fmigrated_action",167,{"type":148,"name":521,"callback":268,"file":506,"line":460},"action_scheduler\u002Fmigration_batch_starting",{"type":148,"name":523,"callback":268,"file":506,"line":524},"action_scheduler\u002Fmigration_batch_complete",183,[526],{"action":527,"nopriv":528,"callback":529,"hasNonce":530,"hasCapCheck":530,"file":156,"line":531},"cforge_telemetry_opt_in",false,"handle_telemetry_opt_in",true,26,[],[],[535],{"hook":183,"callback":183,"file":185,"line":536},372,{"dangerousFunctions":538,"sqlUsage":544,"outputEscaping":565,"fileOperations":14,"externalRequests":597,"nonceChecks":598,"capabilityChecks":33,"bundledLibraries":599},[539],{"fn":540,"file":541,"line":542,"context":543},"unserialize","Lib\\action-scheduler\\classes\\data-stores\\ActionScheduler_DBStore.php",397,"$schedule = unserialize( $data->schedule ); \u002F\u002F phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.se",{"prepared":406,"raw":95,"locations":545},[546,549,552,555,558,560,562,563],{"file":156,"line":547,"context":548},363,"$wpdb->get_var() with variable interpolation",{"file":156,"line":550,"context":551},369,"$wpdb->get_results() with variable interpolation",{"file":375,"line":553,"context":554},360,"$wpdb->get_col() with variable interpolation",{"file":541,"line":556,"context":557},1169,"$wpdb->query() with variable interpolation",{"file":413,"line":559,"context":548},154,{"file":417,"line":561,"context":551},203,{"file":477,"line":244,"context":554},{"file":480,"line":564,"context":554},130,{"escaped":566,"rawEcho":567,"locations":568},181,12,[569,572,574,577,579,582,584,587,589,591,593,595],{"file":156,"line":570,"context":571},364,"raw output",{"file":156,"line":573,"context":571},371,{"file":575,"line":576,"context":571},"Lib\\action-scheduler\\classes\\abstracts\\ActionScheduler_Abstract_ListTable.php",725,{"file":575,"line":578,"context":571},747,{"file":580,"line":581,"context":571},"Lib\\action-scheduler\\classes\\ActionScheduler_wcSystemStatus.php",110,{"file":583,"line":70,"context":571},"Lib\\action-scheduler\\classes\\WP_CLI\\Action\\List_Command.php",{"file":585,"line":586,"context":571},"Lib\\action-scheduler\\classes\\WP_CLI\\Action\\Next_Command.php",53,{"file":585,"line":588,"context":571},64,{"file":590,"line":172,"context":571},"Lib\\action-scheduler\\classes\\WP_CLI\\System_Command.php",{"file":590,"line":592,"context":571},51,{"file":590,"line":594,"context":571},107,{"file":590,"line":596,"context":571},160,4,3,[],[601,619],{"entryPoint":602,"graph":603,"unsanitizedCount":14,"severity":618},"display_table (Lib\\action-scheduler\\classes\\abstracts\\ActionScheduler_Abstract_ListTable.php:735)",{"nodes":604,"edges":616},[605,610],{"id":606,"type":607,"label":608,"file":575,"line":609},"n0","source","$_GET",738,{"id":611,"type":612,"label":613,"file":575,"line":614,"wp_function":615},"n1","sink","echo() [XSS]",743,"echo",[617],{"from":606,"to":611,"sanitized":528},"medium",{"entryPoint":620,"graph":621,"unsanitizedCount":27,"severity":630},"\u003CActionScheduler_Abstract_ListTable> (Lib\\action-scheduler\\classes\\abstracts\\ActionScheduler_Abstract_ListTable.php:0)",{"nodes":622,"edges":628},[623,626],{"id":606,"type":607,"label":624,"file":575,"line":625},"$_GET (x2)",189,{"id":611,"type":612,"label":613,"file":575,"line":627,"wp_function":615},529,[629],{"from":606,"to":611,"sanitized":530},"low",{"summary":632,"deductions":633},"Content Forge v1.4.1 presents a generally good security posture with several strong indicators of secure coding practices. The plugin exhibits robust use of prepared statements for SQL queries and proper output escaping, significantly reducing the risk of common web vulnerabilities. Furthermore, the absence of known vulnerabilities and a clean vulnerability history are positive signs of a well-maintained and secure plugin.\n\nHowever, the presence of the `unserialize` function, although only one instance, introduces a potential risk. If the data being unserialized is not strictly controlled and sanitized by the application before being passed to `unserialize`, it could lead to object injection vulnerabilities. Additionally, a taint analysis revealed one flow with unsanitized paths, which warrants further investigation to understand its potential impact and if it can be exploited.\n\nWhile the plugin has a strong history of no reported vulnerabilities, this does not guarantee future security. The identified code signals, particularly the use of `unserialize` and the unsanitized path flow, represent areas for cautious attention. Overall, Content Forge appears to be a secure plugin with a proactive approach to security, but these specific code-level findings require careful monitoring and potential remediation.",[634,636],{"reason":635,"points":11},"Dangerous function detected (unserialize)",{"reason":637,"points":638},"Flow with unsanitized paths detected",15,"2026-03-17T00:21:27.891Z",{"wat":641,"direct":658},{"assetPaths":642,"generatorPatterns":649,"scriptPaths":650,"versionParams":651},[643,644,645,646,647,648],"\u002Fwp-content\u002Fplugins\u002Fcontent-forge\u002Fdist\u002Fcss\u002Fadmin.css","\u002Fwp-content\u002Fplugins\u002Fcontent-forge\u002Fdist\u002Fjs\u002Fadmin.js","\u002Fwp-content\u002Fplugins\u002Fcontent-forge\u002Fdist\u002Fjs\u002Fvendor.js","\u002Fwp-content\u002Fplugins\u002Fcontent-forge\u002Fdist\u002Fjs\u002Fapp.js","\u002Fwp-content\u002Fplugins\u002Fcontent-forge\u002Fassets\u002Fcss\u002Fcontent-forge.css","\u002Fwp-content\u002Fplugins\u002Fcontent-forge\u002Fassets\u002Fjs\u002Fcontent-forge.js",[],[644,645,646,648],[652,653,654,655,656,657],"content-forge\u002Fdist\u002Fcss\u002Fadmin.css?ver=","content-forge\u002Fdist\u002Fjs\u002Fadmin.js?ver=","content-forge\u002Fdist\u002Fjs\u002Fvendor.js?ver=","content-forge\u002Fdist\u002Fjs\u002Fapp.js?ver=","content-forge\u002Fassets\u002Fcss\u002Fcontent-forge.css?ver=","content-forge\u002Fassets\u002Fjs\u002Fcontent-forge.js?ver=",{"cssClasses":659,"htmlComments":672,"htmlAttributes":676,"restEndpoints":678,"jsGlobals":683,"shortcodeOutput":685},[660,661,662,663,664,665,666,667,668,669,670,671],"cforge-input","cforge-select","cforge-button","cforge-title","cforge-row","cforge-col","cforge-label","cforge-field","cforge-control","cforge-controls-group","cforge-sidebar","cforge-main-content",[673,674,675],"Content Forge","Content Forge Admin","Content Forge Plugin",[677],"data-cforge-options",[679,680,681,682],"\u002Fwp-json\u002Fcontent-forge\u002Fv1\u002Fsettings","\u002Fwp-json\u002Fcontent-forge\u002Fv1\u002Fgenerate\u002Fposts","\u002Fwp-json\u002Fcontent-forge\u002Fv1\u002Fgenerate\u002Fcomments","\u002Fwp-json\u002Fcontent-forge\u002Fv1\u002Fgenerate\u002Fusers",[684],"contentForgeAdmin",[686],"[content_forge_generator]",{"error":530,"url":688,"statusCode":689,"statusMessage":690,"message":690},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fcontent-forge\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":692,"versions":693},9,[694,699,706,713,720,727,734,741,748],{"version":6,"download_url":26,"svn_tag_url":695,"released_at":28,"has_diff":528,"diff_files_changed":696,"diff_lines":28,"trac_diff_url":697,"vulnerabilities":698,"is_current":530},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fcontent-forge\u002Ftags\u002F1.4.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fcontent-forge%2Ftags%2F1.4.1&new_path=%2Fcontent-forge%2Ftags%2F1.4.2",[],{"version":700,"download_url":701,"svn_tag_url":702,"released_at":28,"has_diff":528,"diff_files_changed":703,"diff_lines":28,"trac_diff_url":704,"vulnerabilities":705,"is_current":528},"1.4.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontent-forge.1.4.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fcontent-forge\u002Ftags\u002F1.4.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fcontent-forge%2Ftags%2F1.4.0&new_path=%2Fcontent-forge%2Ftags%2F1.4.1",[],{"version":707,"download_url":708,"svn_tag_url":709,"released_at":28,"has_diff":528,"diff_files_changed":710,"diff_lines":28,"trac_diff_url":711,"vulnerabilities":712,"is_current":528},"1.4.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontent-forge.1.4.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fcontent-forge\u002Ftags\u002F1.4.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fcontent-forge%2Ftags%2F1.3.0&new_path=%2Fcontent-forge%2Ftags%2F1.4.0",[],{"version":714,"download_url":715,"svn_tag_url":716,"released_at":28,"has_diff":528,"diff_files_changed":717,"diff_lines":28,"trac_diff_url":718,"vulnerabilities":719,"is_current":528},"1.3.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontent-forge.1.3.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fcontent-forge\u002Ftags\u002F1.3.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fcontent-forge%2Ftags%2F1.2.0&new_path=%2Fcontent-forge%2Ftags%2F1.3.0",[],{"version":721,"download_url":722,"svn_tag_url":723,"released_at":28,"has_diff":528,"diff_files_changed":724,"diff_lines":28,"trac_diff_url":725,"vulnerabilities":726,"is_current":528},"1.2.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontent-forge.1.2.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fcontent-forge\u002Ftags\u002F1.2.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fcontent-forge%2Ftags%2F1.1.0&new_path=%2Fcontent-forge%2Ftags%2F1.2.0",[],{"version":728,"download_url":729,"svn_tag_url":730,"released_at":28,"has_diff":528,"diff_files_changed":731,"diff_lines":28,"trac_diff_url":732,"vulnerabilities":733,"is_current":528},"1.1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontent-forge.1.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fcontent-forge\u002Ftags\u002F1.1.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fcontent-forge%2Ftags%2F1.0.2&new_path=%2Fcontent-forge%2Ftags%2F1.1.0",[],{"version":735,"download_url":736,"svn_tag_url":737,"released_at":28,"has_diff":528,"diff_files_changed":738,"diff_lines":28,"trac_diff_url":739,"vulnerabilities":740,"is_current":528},"1.0.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontent-forge.1.0.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fcontent-forge\u002Ftags\u002F1.0.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fcontent-forge%2Ftags%2F1.0.1&new_path=%2Fcontent-forge%2Ftags%2F1.0.2",[],{"version":742,"download_url":743,"svn_tag_url":744,"released_at":28,"has_diff":528,"diff_files_changed":745,"diff_lines":28,"trac_diff_url":746,"vulnerabilities":747,"is_current":528},"1.0.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontent-forge.1.0.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fcontent-forge\u002Ftags\u002F1.0.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fcontent-forge%2Ftags%2F1.0.0&new_path=%2Fcontent-forge%2Ftags%2F1.0.1",[],{"version":749,"download_url":750,"svn_tag_url":751,"released_at":28,"has_diff":528,"diff_files_changed":752,"diff_lines":28,"trac_diff_url":28,"vulnerabilities":753,"is_current":528},"1.0.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontent-forge.1.0.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fcontent-forge\u002Ftags\u002F1.0.0\u002F",[],[]]