[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fz0EUvfV8RARj1WQIpG0foWcr-xJr3yiNCkDxrJWuvNU":3,"$fDjyp-FaBRVYc6ZNTaGotlan9iX-li85FubsECQJDIDk":213,"$fcZP7RbafIeBICX2T-Q_NuMFDDkHWC_aU9YfXyoVjjRE":218},{"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":24,"download_link":25,"security_score":26,"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":140,"fingerprints":184},"post-draft-preview","Post Draft Preview","1.2.2","WP Served","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpserved\u002F","\u003Cp>Simple plugin enabling the publication of post drafts.\u003Cbr \u002F>\nIt allows preview of a draft without being logged to the WordPress admin panel.\u003Cbr \u002F>\nCompatible with the Gutenberg and the Classic Editor.\u003C\u002Fp>\n\u003Ch3>How it works\u003C\u002Fh3>\n\u003Cp>Content created in WordPress from the moment a post or page is added, but before it is published, receives draft status.\u003Cbr \u002F>\nYou can send the draft to someone else, but that person must have adequate access to the wp-admin section.\u003Cbr \u002F>\nThe problem arises when we want to show a draft of the post to people who do not have access to our wp-admin panel.\u003Cbr \u002F>\nFor this purpose, we have created the Post Draft Preview plugin.\u003C\u002Fp>\n\u003Cp>You can find full plugin description \u003Ca href=\"https:\u002F\u002Fwpserved.com\u002Fplugins\u002Fpost-draft-preview\u002F\" rel=\"nofollow ugc\">here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Source files\u003C\u002Fh3>\n\u003Cp>You can find plugin’s source files on our GitHub repo \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwpserved\u002Fpost-draft-preview\" rel=\"nofollow ugc\">page\u003C\u002Fa>.\u003C\u002Fp>\n","Allow non logged-in users to check a draft of unpublished post by using secret link",700,5387,66,4,"2024-02-21T10:23:00.000Z","6.4.8","5.5","7.4",[20,21,22,23],"draft-preview","post-draft","post-preview","public-link","https:\u002F\u002Fwpserved.com\u002Fplugins\u002Fpost-draft-preview\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-draft-preview.1.2.2.zip",85,0,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":34,"avg_security_score":26,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"wpserved",810,30,84,"2026-05-19T19:29:16.178Z",[39,62,82,98,119],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":27,"num_ratings":27,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":59,"download_link":60,"security_score":61,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"auto-post-expiry-manager","Auto Post Expiry Manager","1.0","Hardik Galiya","https:\u002F\u002Fprofiles.wordpress.org\u002Fhardik2104\u002F","\u003Cp>\u003Cstrong>Auto Post Expiry Manager\u003C\u002Fstrong> allows you to set an expiry date and time for any post or custom post type. Once the scheduled expiry time is reached, the post will automatically switch from “Published” to “Draft” status.\u003C\u002Fp>\n\u003Cp>It’s useful for:\u003Cbr \u002F>\n– Event announcements\u003Cbr \u002F>\n– Time-sensitive promotions\u003Cbr \u002F>\n– Auto-drafting outdated posts\u003Cbr \u002F>\n– Limiting visibility on dated content\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Features:\u003C\u002Fstrong>\u003Cbr \u002F>\n– Works with \u003Cstrong>all public post types\u003C\u002Fstrong>\u003Cbr \u002F>\n– Set expiration time using a simple \u003Cstrong>datetime picker\u003C\u002Fstrong>\u003Cbr \u002F>\n– Lightweight cron job runs every minute\u003Cbr \u002F>\n– Automatically removes expiry after execution\u003Cbr \u002F>\n– Manual trigger available via URL for testing\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the \u003Ca href=\"https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\" rel=\"nofollow ugc\">GPLv2 or later\u003C\u002Fa>.\u003Cbr \u002F>\nCopyright (c) 2025 Hardik Galiya\u003C\u002Fp>\n","Automatically expire posts and custom post types at a specific date and time. Works with all public post types and uses a lightweight cron scheduler.",90,534,"2025-06-23T05:38:00.000Z","6.8.5","5.0","7.2",[54,55,56,57,58],"auto-unpublish","expire-posts","post-expiration","post-lifecycle","schedule-post-draft","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fauto-post-expiry-manager.zip",100,{"slug":63,"name":64,"version":65,"author":66,"author_profile":67,"description":68,"short_description":69,"active_installs":70,"downloaded":71,"rating":61,"num_ratings":72,"last_updated":73,"tested_up_to":74,"requires_at_least":17,"requires_php":18,"tags":75,"homepage":80,"download_link":81,"security_score":61,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"init-embed-posts","Init Embed Posts – Stylish, Fast, Portable","1.6","Init HTML","https:\u002F\u002Fprofiles.wordpress.org\u002Fbrokensmile2103-1\u002F","\u003Cp>Init Embed Posts lets you embed WordPress content externally – with beautiful cards, real-time REST API data, and zero friction.\u003C\u002Fp>\n\u003Cp>Instead of using iframes or clunky oEmbed, this plugin gives you clean \u003Ccode>\u003Cdiv>\u003C\u002Fcode> + \u003Ccode>\u003Cscript>\u003C\u002Fcode> snippets, which load the post or product dynamically using WordPress REST API. Designed for speed, style, and full control – using pure JavaScript and smart caching.\u003C\u002Fp>\n\u003Cp>This plugin is part of the \u003Ca href=\"https:\u002F\u002Fen.inithtml.com\u002Finit-plugin-suite-minimalist-powerful-and-free-wordpress-plugins\u002F\" rel=\"nofollow ugc\">Init Plugin Suite\u003C\u002Fa> — a collection of minimalist, fast, and developer-focused tools for WordPress.\u003C\u002Fp>\n\u003Cp>GitHub repository: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbrokensmile2103\u002Finit-embed-posts\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fbrokensmile2103\u002Finit-embed-posts\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Embed any public post or WooCommerce product\u003C\u002Fli>\n\u003Cli>Works anywhere: raw HTML, CMS, blog, landing page…\u003C\u002Fli>\n\u003Cli>Beautiful card layout:\n\u003Cul>\n\u003Cli>Site name + favicon\u003C\u002Fli>\n\u003Cli>Title, excerpt, date (for posts)\u003C\u002Fli>\n\u003Cli>Featured image, horizontal gallery (optional)\u003C\u002Fli>\n\u003Cli>Product name, price, sale price with strikethrough\u003C\u002Fli>\n\u003Cli>“Add to cart” styled button (optional)\u003C\u002Fli>\n\u003Cli>Auto dark mode, adapts to embedding site\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Hover effects and modern UI\u003C\u002Fli>\n\u003Cli>Skeleton loader while waiting for data\u003C\u002Fli>\n\u003Cli>JS-only, no iframe, no jQuery, no dependency\u003C\u002Fli>\n\u003Cli>Modal UI to generate personalized embed code\u003C\u002Fli>\n\u003Cli>Smart \u003Ccode>\u003Cscript>\u003C\u002Fcode> switching:\n\u003Cul>\n\u003Cli>\u003Ccode>init-embed.js\u003C\u002Fcode> for posts\u003C\u002Fli>\n\u003Cli>\u003Ccode>init-embed-product.js\u003C\u002Fcode> for Woo products\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Embed attributes:\n\u003Cul>\n\u003Cli>\u003Ccode>data-theme=\"light|dark|auto\"\u003C\u002Fcode> – force or auto-detect theme\u003C\u002Fli>\n\u003Cli>\u003Ccode>data-image\u003C\u002Fcode>, \u003Ccode>data-featured\u003C\u002Fcode>, \u003Ccode>data-cart\u003C\u002Fcode> – control content\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Cached REST API (immutable, 1 year)\u003C\u002Fli>\n\u003Cli>Developer filters to customize data and HTML\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Filters for Developers\u003C\u002Fh3>\n\u003Cp>These filters give you full control over how data is rendered and returned.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>REST response filters:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ccode>init_plugin_suite_embed_posts_rest_response\u003C\u002Fcode>\u003Cbr \u002F>\nModify REST API response for posts.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>init_plugin_suite_embed_products_rest_response\u003C\u002Fcode>\u003Cbr \u002F>\nModify REST API response for Woo products.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>init_plugin_suite_embed_posts_view_count_keys\u003C\u002Fcode>\u003Cbr \u002F>\nCustomize the list of post meta keys used to detect view count. Supports array of meta keys, ordered by priority.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Excerpt filters:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ccode>init_plugin_suite_embed_posts_excerpt\u003C\u002Fcode>\u003Cbr \u002F>\nCustomize excerpt for posts.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>init_plugin_suite_embed_products_excerpt\u003C\u002Fcode>\u003Cbr \u002F>\nCustomize excerpt for products.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Image control:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ccode>init_plugin_suite_embed_posts_images\u003C\u002Fcode>\u003Cbr \u002F>\nFilter image list for embedded post.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>init_plugin_suite_embed_products_images\u003C\u002Fcode>\u003Cbr \u002F>\nFilter image list for embedded product.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>init_plugin_suite_embed_posts_extracted_images\u003C\u002Fcode>\u003Cbr \u002F>\nFilter raw image URLs extracted from post content.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Favicon:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ccode>init_plugin_suite_embed_posts_favicon_url\u003C\u002Fcode>\u003Cbr \u002F>\nOverride favicon for posts.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>init_plugin_suite_embed_products_favicon_url\u003C\u002Fcode>\u003Cbr \u002F>\nOverride favicon for products.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>HTML output filters:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>init_plugin_suite_embed_posts_shortcode_html\u003C\u002Fcode>\u003Cbr \u002F>\nCustomize HTML output of the \u003Ccode>[init_embed_code]\u003C\u002Fcode> shortcode. Allows complete control over button markup, styling, and attributes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Auto-insert locations:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>init_embed_insert_locations\u003C\u002Fcode>\u003Cbr \u002F>\nCustomize or filter valid auto-insert positions (e.g., after title, before content, etc).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPLv2 or later.\u003Cbr \u002F>\nYou are free to use, modify, and distribute it under the same license.\u003C\u002Fp>\n","Embed WordPress posts or products anywhere – like a Twitter Card. No iframe. No oEmbed. Just pure JS, full control, and beautiful design.",80,986,2,"2025-12-23T05:16:00.000Z","6.9.4",[76,22,77,78,79],"embed","rest-api","woocommerce","wordpress-card","https:\u002F\u002Finithtml.com\u002Fplugin\u002Finit-embed-posts\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Finit-embed-posts.1.6.zip",{"slug":83,"name":84,"version":85,"author":86,"author_profile":87,"description":88,"short_description":89,"active_installs":35,"downloaded":90,"rating":61,"num_ratings":91,"last_updated":92,"tested_up_to":74,"requires_at_least":51,"requires_php":93,"tags":94,"homepage":59,"download_link":97,"security_score":61,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"ppp-extension","PPP Extension","1.0.4","Louie Sonugan","https:\u002F\u002Fprofiles.wordpress.org\u002Fwinglouie\u002F","\u003Cp>Extends the Public Post Preview plugin by allowing users to customize the expiration time dynamically through the WordPress admin panel.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Set the expiration time for Public Post Preview links.\u003C\u002Fli>\n\u003Cli>Customize the expiration time in \u003Cstrong>minutes\u003C\u002Fstrong> (from 1 minute to 30 days).\u003C\u002Fli>\n\u003Cli>Secure input validation to prevent invalid values.\u003C\u002Fli>\n\u003Cli>Fully integrated into the \u003Cstrong>WordPress Settings panel\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Safe and lightweight implementation.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How to Use\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Navigate to \u003Cstrong>Settings > PPP Extension\u003C\u002Fstrong> in your WordPress admin panel.\u003C\u002Fli>\n\u003Cli>Enter the expiration time in \u003Cstrong>minutes\u003C\u002Fstrong> (minimum: 1, maximum: 43200 minutes \u002F 30 days).\u003C\u002Fli>\n\u003Cli>Click Save Changes.\u003C\u002Fli>\n\u003Cli>Public Post Preview links will now expire based on your selected time.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Security\u003C\u002Fh3>\n\u003Cp>– User input is \u003Cstrong>sanitized\u003C\u002Fstrong> and validated to prevent unauthorized values.\u003Cbr \u002F>\n– The input is limited between \u003Cstrong>1 minute and 30 days\u003C\u002Fstrong> to avoid extreme values.\u003Cbr \u002F>\n– Escaped output prevents XSS attacks.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is released under the GPLv2 or later license.\u003C\u002Fp>\n","Extends the Public Post Preview plugin by allowing users to customize the expiration time dynamically through the WordPress admin panel.",698,1,"2026-01-08T09:02:00.000Z","8.0",[95,96],"expiration","public-post-preview","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fppp-extension.1.0.4.zip",{"slug":99,"name":100,"version":101,"author":102,"author_profile":103,"description":104,"short_description":105,"active_installs":106,"downloaded":107,"rating":61,"num_ratings":91,"last_updated":108,"tested_up_to":109,"requires_at_least":110,"requires_php":18,"tags":111,"homepage":116,"download_link":117,"security_score":118,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"sharethumb","4Site ShareThumb – Branded Social Preview OG Image Plugin","1.3","Heming Nelson","https:\u002F\u002Fprofiles.wordpress.org\u002F4sitestudios\u002F","\u003Cp>Select one of our optimized post preview image themes and then customize it to create high-performing social share images. ShareThumb grabs the title and the featured image from the post and you define everything else:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Layout (Theme)\u003C\u002Fli>\n\u003Cli>Font\u003C\u002Fli>\n\u003Cli>Font Color\u003C\u002Fli>\n\u003Cli>Logo\u003C\u002Fli>\n\u003Cli>Icon\u003C\u002Fli>\n\u003Cli>Background Color\u003C\u002Fli>\n\u003Cli>Accent Color\u003C\u002Fli>\n\u003Cli>Secondary Color\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>When links to your website are shared on iMessage, Facebook, LinkedIn or any number of platforms, ShareThumb generates the custom social cards that you configured.\u003C\u002Fp>\n\u003Cp>You can set up our social media image generator to create social cards for every page on your website, or you can specify the specific post types that you want to generate the social media preview images for. You can also create custom og:images for individual posts.\u003C\u002Fp>\n\u003Cp>Here’s a one-minute video about our plugin:\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Frf6CSJB9-rQ?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>Why 4Site ShareThumb is Unique\u003C\u002Fh3>\n\u003Cp>ShareThumb uses a different methodology to generate your social share images than most of the other WordPress plugins. We create your link preview images on our app running on cloud servers. When someone shares a link to your post on Discord, that platform requests the open graph image from your site. Our plugin then redirects that request to our app, and our app provides the image to Discord. We store that og:image for the next time a request is made for it. Every 30 days, we check back in with your website to see if you’ve updated the title or the feature image of the post, and then we update the og image.\u003C\u002Fp>\n\u003Cp>This setup has a lot of benefits over serving them up social thumbnails directly from your WordPress website. It takes a lot of processing power to render these custom images. We carry that load for you. It also means that you can run ShareThumb on multiple sites and manage all your thumbs in one place. And you can create custom headlines for posts and override the feature image on your post with a thumbnail that you specifically optimize for sharing.\u003C\u002Fp>\n\u003Cp>We require that you register in order to access these features so we can verify your identity and your ownership of the websites. But registration is free, there’s no trial period, and we don’t ask for your credit card.\u003C\u002Fp>\n\u003Cp>After registering and adding your API Key to the WordPress Plugin Settings, ShareThumb will automatically regenerate your thumbnail every time you update your post title or ShareThumb Settings.\u003C\u002Fp>\n\u003Cp>Here’s a five-minute video that shows you how to register and verify ownership of your site. The process itself only takes a couple minutes.\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FNkY5UrIOUYU?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>Pro Features\u003C\u002Fh3>\n\u003Cp>After you register, you have the option to upgrade to a paid account. With our Pro plan, you can collect statistics on where your links are shared and how many times they are shared. This is information that is not available anywhere else – your site doesn’t collect this data and Google Analytics can’t collect it.\u003C\u002Fp>\n\u003Cp>You can take advantage of artificial intelligence to highlight power words in the post titles that appear superimposed over your image. We call these “smart thumbs”:)\u003C\u002Fp>\n\u003Cp>Other features we will be rolling out soon include the ability to add AI-optimized headlines and AI-generated images that are custom made for your content and optimized to grab people’s attention. We also will be offering the ability to create your own custom thumbnail themes (templates).\u003C\u002Fp>\n\u003Ch3>For more information\u003C\u002Fh3>\n\u003Cp>Visit the \u003Ca href=\"https:\u002F\u002Fwww.4sitestudios.com\u002Fproducts\u002Fsharethumb\u002F\" rel=\"nofollow ugc\">ShareThumb website\u003C\u002Fa>.\u003C\u002Fp>\n","Free social share images for unlimited pages using customizable OG image templates. Upgrade to optimize with AI and get sharing analytics.",20,1810,"2024-09-05T03:31:00.000Z","6.5.8","5.9",[112,113,114,22,115],"facebook","link-preview","og-image","social-media-image","https:\u002F\u002Fsharethumb.io\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsharethumb.1.3.zip",92,{"slug":120,"name":121,"version":122,"author":123,"author_profile":124,"description":125,"short_description":126,"active_installs":127,"downloaded":128,"rating":61,"num_ratings":91,"last_updated":129,"tested_up_to":130,"requires_at_least":131,"requires_php":59,"tags":132,"homepage":59,"download_link":136,"security_score":137,"vuln_count":91,"unpatched_count":91,"last_vuln_date":138,"fetched_at":139},"just-post-preview","Just Post Preview Widget","1.1.1","Alex Prokopenko \u002F JustCoded","https:\u002F\u002Fprofiles.wordpress.org\u002Faprokopenko\u002F","\u003Cp>This plugin is for developers who need easy to edit the complex layouts and insert different post tile blocks inside the layout,\u003Cbr \u002F>\nsidebars or page builders. By default, it has 3 pre-defined layouts; you can rewrite them in your theme or register custom layouts.\u003Cbr \u002F>\nUnfortunately the pre-defined layouts have no styles inside. (Because they will be overwritten in the theme 100% anyway).\u003C\u002Fp>\n\u003Ch4>Template files\u003C\u002Fh4>\n\u003Cp>To overwrite the pre-defined templates, you should create a folder with the name \u003Ccode>“just-post-preview”\u003C\u002Fcode> in the root\u003Cbr \u002F>\nof your theme and copy required templates from the \u003Ccode>\u002Fwp-content\u002Fplugins\u002Fjust-post-preview\u002Flayous\u002F\u003C\u002Fcode> folder.\u003C\u002Fp>\n\u003Cp>File names format: \u003Ccode>jpp_layout_{layout key}.php\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>You can find PHP comments on the top of the demo templates. They help your IDE to show you autocomplete boxes for available variables.\u003C\u002Fp>\n\u003Ch4>Adding custom layout\u003C\u002Fh4>\n\u003Cp>To add a custom layout, you need to add a new filter hook in your theme functions.php file:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter('jpp_post_preview_layouts', 'my_post_preview_layouts');\nfunction my_post_preview_layouts($layouts){\n    $layouts['my_layout_key'] = 'My custom layout';\n    return $layouts;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>After that hook you will need to create a template file in the \u003Ccode>\u002Fpath\u002Fto\u002Ftheme\u002Fjust-post-preview\u003C\u002Fcode> folder with the name \u003Ccode>jpp_layout_my_layout_key.php\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch4>That’s all!\u003C\u002Fh4>\n\u003Cp>FILL FREE TO CONTACT ME IF YOU FIND ANY BUGS\u002FISSUES!\u003C\u002Fp>\n\u003Cp>\u003Cstrong>ISSUES TRACKER\u003C\u002Fstrong>\u003Cbr \u002F>\nThe project is also available on github. Please post your issues or feedbacks there.\u003Cbr \u002F>\nhttps:\u002F\u002Fgithub.com\u002Faprokopenko\u002Fjust-post-preview\u003C\u002Fp>\n","Widget to easy add any post content preview blocks with different layouts, specified in the theme.",10,2224,"2017-03-06T09:07:00.000Z","4.8.28","4.0",[133,134,22,135],"developer","layouts","widget","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjust-post-preview.zip",62,"2025-04-04 00:00:00","2026-04-06T09:54:40.288Z",{"attackSurface":141,"codeSignals":153,"taintFlows":176,"riskAssessment":177,"analyzedAt":183},{"hooks":142,"ajaxHandlers":149,"restRoutes":150,"shortcodes":151,"cronEvents":152,"entryPointCount":27,"unprotectedCount":27},[143],{"type":144,"name":145,"callback":146,"priority":127,"file":147,"line":148},"filter","the_posts","displayDraftPost","src\\Post\\Draft.php",46,[],[],[],[],{"dangerousFunctions":154,"sqlUsage":155,"outputEscaping":163,"fileOperations":27,"externalRequests":27,"nonceChecks":91,"capabilityChecks":91,"bundledLibraries":175},[],{"prepared":72,"raw":72,"locations":156},[157,161],{"file":158,"line":159,"context":160},"src\\Post\\Meta.php",57,"$wpdb->get_var() with variable interpolation",{"file":158,"line":162,"context":160},64,{"escaped":164,"rawEcho":165,"locations":166},19,3,[167,171,173],{"file":168,"line":169,"context":170},"resources\\views\\admin\\settings\\data-autogenerate.php",15,"raw output",{"file":168,"line":172,"context":170},16,{"file":168,"line":174,"context":170},17,[],[],{"summary":178,"deductions":179},"The 'post-draft-preview' plugin v1.2.2 exhibits a strong security posture based on the provided static analysis. The complete absence of identified entry points like AJAX handlers, REST API routes, shortcodes, and cron events significantly minimizes its attack surface. Furthermore, the code analysis reveals good practices in terms of dangerous functions, file operations, and external HTTP requests, all of which are reported as zero. The presence of nonce and capability checks, along with a high percentage of properly escaped outputs and the use of prepared statements for SQL queries, indicates careful development and adherence to WordPress security best practices.\n\nDespite the generally positive findings, there are no critical vulnerabilities or taint flows identified, and the plugin has a clean history with no known CVEs. This suggests a well-maintained and secure codebase. However, the analysis of SQL queries shows that 50% are not using prepared statements, which, while not a critical issue in isolation given the limited number of queries and the absence of direct user input to these queries in the provided data, represents a potential area for improvement and a minor risk if these queries were to become more complex or exposed to untrusted input in future versions.\n\nIn conclusion, 'post-draft-preview' v1.2.2 appears to be a secure plugin with a minimal attack surface and good development practices. The lack of any recorded vulnerabilities or significant code-level risks is commendable. The only minor concern is the use of non-prepared SQL statements for half of the queries, which is a small weakness in an otherwise robust security profile. Users can generally have confidence in the security of this plugin.",[180],{"reason":181,"points":182},"SQL queries not using prepared statements",5,"2026-03-16T19:23:04.309Z",{"wat":185,"direct":200},{"assetPaths":186,"generatorPatterns":192,"scriptPaths":193,"versionParams":194},[187,188,189,190,191],"\u002Fwp-content\u002Fplugins\u002Fpost-draft-preview\u002Fdist\u002Fstyles\u002Ffront.css","\u002Fwp-content\u002Fplugins\u002Fpost-draft-preview\u002Fdist\u002Fscripts\u002Fmanifest.js","\u002Fwp-content\u002Fplugins\u002Fpost-draft-preview\u002Fdist\u002Fscripts\u002Ffront.js","\u002Fwp-content\u002Fplugins\u002Fpost-draft-preview\u002Fdist\u002Fstyles\u002Fadmin.css","\u002Fwp-content\u002Fplugins\u002Fpost-draft-preview\u002Fdist\u002Fscripts\u002Fadmin.js",[],[188,189,191],[195,196,197,198,199],"post-draft-preview\u002Fdist\u002Fstyles\u002Ffront.css?ver=","post-draft-preview\u002Fdist\u002Fscripts\u002Fmanifest.js?ver=","post-draft-preview\u002Fdist\u002Fscripts\u002Ffront.js?ver=","post-draft-preview\u002Fdist\u002Fstyles\u002Fadmin.css?ver=","post-draft-preview\u002Fdist\u002Fscripts\u002Fadmin.js?ver=",{"cssClasses":201,"htmlComments":202,"htmlAttributes":203,"restEndpoints":206,"jsGlobals":211,"shortcodeOutput":212},[],[],[204,205],"pdp_hash","pdp_status",[207,208,209,210],"\u002Fwp-json\u002Fpdp\u002Fv1\u002Fdata\u002Fautogenerate","\u002Fwp-json\u002Fpdp\u002Fv1\u002Fdata\u002Fremove","\u002Fwp-json\u002Fpdp\u002Fv1\u002Fdata\u002Freset","\u002Fwp-json\u002Fpdp\u002Fv1\u002Fpost\u002Fchange-status",[],[],{"error":214,"url":215,"statusCode":216,"statusMessage":217,"message":217},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fpost-draft-preview\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":219,"versions":220},7,[221,227,234,241,248,255,262],{"version":6,"download_url":25,"svn_tag_url":222,"released_at":28,"has_diff":223,"diff_files_changed":224,"diff_lines":28,"trac_diff_url":225,"vulnerabilities":226,"is_current":214},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fpost-draft-preview\u002Ftags\u002F1.2.2\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fpost-draft-preview%2Ftags%2F1.2.1&new_path=%2Fpost-draft-preview%2Ftags%2F1.2.2",[],{"version":228,"download_url":229,"svn_tag_url":230,"released_at":28,"has_diff":223,"diff_files_changed":231,"diff_lines":28,"trac_diff_url":232,"vulnerabilities":233,"is_current":223},"1.2.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-draft-preview.1.2.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fpost-draft-preview\u002Ftags\u002F1.2.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fpost-draft-preview%2Ftags%2F1.2.0.1&new_path=%2Fpost-draft-preview%2Ftags%2F1.2.1",[],{"version":235,"download_url":236,"svn_tag_url":237,"released_at":28,"has_diff":223,"diff_files_changed":238,"diff_lines":28,"trac_diff_url":239,"vulnerabilities":240,"is_current":223},"1.2.0.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-draft-preview.1.2.0.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fpost-draft-preview\u002Ftags\u002F1.2.0.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fpost-draft-preview%2Ftags%2F1.2.0&new_path=%2Fpost-draft-preview%2Ftags%2F1.2.0.1",[],{"version":242,"download_url":243,"svn_tag_url":244,"released_at":28,"has_diff":223,"diff_files_changed":245,"diff_lines":28,"trac_diff_url":246,"vulnerabilities":247,"is_current":223},"1.2.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-draft-preview.1.2.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fpost-draft-preview\u002Ftags\u002F1.2.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fpost-draft-preview%2Ftags%2F1.1.3&new_path=%2Fpost-draft-preview%2Ftags%2F1.2.0",[],{"version":249,"download_url":250,"svn_tag_url":251,"released_at":28,"has_diff":223,"diff_files_changed":252,"diff_lines":28,"trac_diff_url":253,"vulnerabilities":254,"is_current":223},"1.1.3","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-draft-preview.1.1.3.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fpost-draft-preview\u002Ftags\u002F1.1.3\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fpost-draft-preview%2Ftags%2F1.1.2&new_path=%2Fpost-draft-preview%2Ftags%2F1.1.3",[],{"version":256,"download_url":257,"svn_tag_url":258,"released_at":28,"has_diff":223,"diff_files_changed":259,"diff_lines":28,"trac_diff_url":260,"vulnerabilities":261,"is_current":223},"1.1.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-draft-preview.1.1.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fpost-draft-preview\u002Ftags\u002F1.1.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fpost-draft-preview%2Ftags%2F1.1.1&new_path=%2Fpost-draft-preview%2Ftags%2F1.1.2",[],{"version":122,"download_url":263,"svn_tag_url":264,"released_at":28,"has_diff":223,"diff_files_changed":265,"diff_lines":28,"trac_diff_url":28,"vulnerabilities":266,"is_current":223},"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-draft-preview.1.1.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fpost-draft-preview\u002Ftags\u002F1.1.1\u002F",[],[]]