[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fHSP9E3J2f_h6-AAOiUUhKEt8rZ0AVSAGM6uPUecP4fs":3},{"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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":38,"analysis":140,"fingerprints":170},"random-post-name","Random Post Name","1.0","PRESSMAN","https:\u002F\u002Fprofiles.wordpress.org\u002Fpressmaninc\u002F","\u003Cp>Auto-generate a unique random string and set it to post_name.\u003C\u002Fp>\n\u003Ch4>Customization with hooks\u003C\u002Fh4>\n\u003Cp>Use of filter hooks is at your own risk.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>You can change post_type to be applied by an array. Deafult is ‘post’ only.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\nadd_filter( 'random_post_name_post_types', 'hoge' );\nfunction hoge(){\n    return ['post', 'page'];\n}\n\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>You can change the number of characters in the post_name. Deafult is 10.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\nadd_filter( 'random_post_name_digits', 'hoge' );\nfunction hoge(){\n    return 20;\n}\n\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>You can change the variation of characters. Deafult is ‘0123456789abcdefghijklmnopqrstuvwxyz’. Do not include multibyte chars.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\nadd_filter( 'random_post_name_choices', 'hoge' );\nfunction hoge(){\n    return '0123456789abcdefghijkmnpqrstuvwxyz_-';\n}\n\u003C\u002Fpre>\n\u003Ch3>Precautions\u003C\u002Fh3>\n\u003Cp>Too few characters and too few character variations can cause unexpected problems.\u003C\u002Fp>\n","Auto-generate a unique random string and set it to post_name. Customization with hooks Use of filter hooks is at your own risk.",10,921,0,"2020-06-12T11:13:00.000Z","5.4.19","5.4","7.1.24",[19,20,21,22,23],"post","post_name","pressman","ramdom","slug","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Frandom-post-name\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frandom-post-name.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":34,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"pressmaninc",20,100,90,30,87,"2026-04-04T23:10:40.755Z",[39,58,83,106,123],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":11,"downloaded":47,"rating":33,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":49,"tags":52,"homepage":55,"download_link":56,"security_score":33,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":57},"no-slug-conflicts-with-trash","No Slug Conflicts with Trash","1.2","Scott Reilly","https:\u002F\u002Fprofiles.wordpress.org\u002Fcoffee2code\u002F","\u003Cp>\u003Cstrong>NOTE: WordPress 4.5 incorporated the functionality of this plugin and thus it is no longer needed unless you’re still running an older version of WP.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This plugin implements the belief that a trashed page or post should not in any way conflict with a new page or post when it comes to slugs. In essence, a new page or post should take precedence over anything in the trash. After all, the page\u002Fpost is in the trash for a reason.\u003C\u002Fp>\n\u003Cp>By default, WordPress takes into consideration posts and pages that have been trashed when deciding if the slug for a new post is already in use. Obviously, in general, WordPress should not allow duplicate slugs because that could interfere with permalinks. The thinking behind WordPress’s handling of the situation is that trashed posts\u002Fpages are still technically present, just inaccessible. It is possible that an author or admin would choose to restore a post from the trash, which WordPress feels should then occupy that same permalink as before it was trashed.\u003C\u002Fp>\n\u003Cp>If what WordPress does is unclear, here’s an example to help clarify things:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>WordPress ships with a page called “About” with the slug of “about”. The page’s URL would be http:\u002F\u002Fyoursite\u002Fabout\u002F\u003C\u002Fli>\n\u003Cli>Let’s say you trash that page and start a new page with the name “About”.\u003C\u002Fli>\n\u003Cli>Due to a trashed page having the slug that would normally have been assigned to the new page (“about”), the new page gets the slug of “about-2”, resulting in the page’s URL being http:\u002F\u002Fyoursite\u002Fabout-2\u002F\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>With this plugin, for this example, the new “About” page would get the slug “about” as one would hope.\u003C\u002Fp>\n\u003Cp>That said, the plugin tries its best to restore untrashed posts to their original slug. The only time it fails to do so is if a new page or post has claimed the trashed post’s original slug, in which case the untrashed post is assigned a new slug.\u003C\u002Fp>\n\u003Cp>See other sections of the documentation for more insight into the plugin’s functionality. See WP core \u003Ca href=\"https:\u002F\u002Fcore.trac.wordpress.org\u002Fticket\u002F11863\" rel=\"nofollow ugc\">ticket #11863\u003C\u002Fa> for discussion on the matter.\u003C\u002Fp>\n\u003Cp>Links: \u003Ca href=\"http:\u002F\u002Fcoffee2code.com\u002Fwp-plugins\u002Fno-slug-conflicts-with-trash\u002F\" rel=\"nofollow ugc\">Plugin Homepage\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fno-slug-conflicts-with-trash\u002F\" rel=\"ugc\">Plugin Directory Page\u003C\u002Fa> | \u003Ca href=\"http:\u002F\u002Fcoffee2code.com\" rel=\"nofollow ugc\">Author Homepage\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>The Solution Explained\u003C\u002Fh3>\n\u003Cp>An overview of the approach employed by the plugin to resolve the issue of slugs potentially conflicting with posts in the trash.\u003C\u002Fp>\n\u003Ch4>What WordPress does\u003C\u002Fh4>\n\u003Cp>In order to understand the crux of the implemented solution, a quick refresher on unique slug handling by WP:\u003C\u002Fp>\n\u003Cp>Before published use, a desired slug is passed to \u003Ccode>wp_unique_post_slug()\u003C\u002Fcode> and a safe slug is returned. The safe slug may differ from the desired slug if any existing post (including a trashed post) has that slug (or, less likely, is invalid for permalink reasons such as feeds or date archives).\u003C\u002Fp>\n\u003Cp>In order to prevent a trashed post’s slug from conflicting with a new post, this plugin takes an approach that is comprised of two primary tasks:\u003C\u002Fp>\n\u003Ch4>1. Permit a post to use a slug that conflicts with a trashed post.\u003C\u002Fh4>\n\u003Cp>The plugin hooks the ‘wp_unique_post_slug’ filter. If the desired slug matches the safe slug, the desired slug is unique and nothing needs to be done.\u003C\u002Fp>\n\u003Cp>When the two slugs don’t match, it has to determine if the conflict is due to a trashed post or not, so it attempts to find a trashed post with the desired slug.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>If no such trashed post is found, the conflict is with a live post (or was an otherwise unsuitable slug) so the safe slug must be used by the new post (so, again, nothing needs to be done).\u003C\u002Fli>\n\u003Cli>If such a trashed post is found, then the plugin simply inverses the traditional behavior of \u003Ccode>wp_unique_post_slug()\u003C\u002Fcode>: give the trashed post the safe slug and return the desired slug for use by the new post (rather than having the trashed post retain its slug and forcing the new post to use the safe slug). In order to be able to restore a trashed post to its original slug, the trashed post’s original slug is stored in postmeta.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2. Restore a trashed post to its original slug, if necessary and possible.\u003C\u002Fh4>\n\u003Cp>For a post transitioning away from the ‘trash’ post status, check to see if its slug was rewritten (denoted by the presence of the postmeta field only assigned if the original slug was changed due to a conflict while the post was in the trash).\u003C\u002Fp>\n\u003Cp>If there was no original slug, the slug was never changed and nothing more needs to happen.\u003C\u002Fp>\n\u003Cp>When there is an original slug, check to see if that slug is still in use by a non-trashed post.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>If not, restore the post slug to the original value.\u003C\u002Fli>\n\u003Cli>If so, there is no recourse but to leave the post slug as-is (it is guaranteed to be unique already).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>In either case, the postmeta field for the original slug value gets deleted since the now untrashed post is exposed in some fashion with its current slug and should abide by it going forward.\u003C\u002Fp>\n","NOTE: WordPress 4.5 incorporated the functionality of this plugin and thus it is no longer needed unless you're still running an older version of &hellip;",4118,2,"","4.4.34","3.5",[53,19,20,23,54],"coffee2code","trash","http:\u002F\u002Fcoffee2code.com\u002Fwp-plugins\u002Fno-slug-conflicts-with-trash\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fno-slug-conflicts-with-trash.1.2.zip","2026-03-15T10:48:56.248Z",{"slug":59,"name":60,"version":61,"author":62,"author_profile":63,"description":64,"short_description":65,"active_installs":66,"downloaded":67,"rating":33,"num_ratings":68,"last_updated":69,"tested_up_to":70,"requires_at_least":71,"requires_php":72,"tags":73,"homepage":78,"download_link":79,"security_score":80,"vuln_count":81,"unpatched_count":13,"last_vuln_date":82,"fetched_at":28},"remove-cpt-base","Remove CPT base","6.7","kubiq","https:\u002F\u002Fprofiles.wordpress.org\u002Fkubiq\u002F","\u003Cp>Remove custom post type base slug from url\u003C\u002Fp>\n\u003Cul>\n\u003Cli>possibility to select specific custom post type(s)\u003C\u002Fli>\n\u003Cli>auto redirect old slugs to no-base slugs\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Yoast SEO specifics\u003C\u002Fh3>\n\u003Cp>If you’re using Yoast SEO plugin, after you change something in the Remove CPT base plugin, you should deactivate Yoast SEO and activate it back again to refresh its yoast_indexable database table, so it will generate correct og:url, canonical url and JSON-LD urls.\u003C\u002Fp>\n","Remove custom post type base slug from url",10000,96204,33,"2025-12-01T22:03:00.000Z","6.9.4","3.0","5.6",[74,75,76,77,23],"base","custom-post-type","permalink","remove","https:\u002F\u002Fwww.paypal.me\u002Fjakubnovaksl","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fremove-cpt-base.6.7.zip",99,1,"2022-05-06 13:29:00",{"slug":84,"name":85,"version":86,"author":87,"author_profile":88,"description":89,"short_description":90,"active_installs":91,"downloaded":92,"rating":93,"num_ratings":94,"last_updated":95,"tested_up_to":96,"requires_at_least":97,"requires_php":49,"tags":98,"homepage":104,"download_link":105,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"postname-permalink-auto-redirect","Postname Permalink Auto Redirect","1.1","fabioneves","https:\u002F\u002Fprofiles.wordpress.org\u002Ffabioneves\u002F","\u003Cp>Changed the permalink structure and don’t want to lose your SEO? You’re in the right place!\u003C\u002Fp>\n\u003Cp>This plugin will automatically redirect the old ‘%postname%’ permalink structure to the new one as long you keep the same slug in the posts. It works by searching posts by the slug name that comes in the request, so as long as you keep the post slug intact, it should be able to find the post and redirect to whatever new permalink it now is.\u003C\u002Fp>\n\u003Cp>Eg.:\u003Cbr \u002F>\nLet’s suppose you’re using ‘\u002F%postname%\u002F’ as your permalink structure, but after some time you find out it’s not a good structure (it’s not!) and you change it to ‘\u002F%category%\u002F%postname%\u002F’, the old links will now generate a 404 page, because there’s nothing there anymore.\u003C\u002Fp>\n\u003Cp>In this example your site is http:\u002F\u002Fmy-cool-domain.com and you have a post with the slug ‘my-cool-post’ under the category ‘news’. With the old ‘\u002F%postname%\u002F’ structure you would access this post with the URL:\u003Cbr \u002F>\nhttp:\u002F\u002Fmy-cool-domain.com\u002Fmy-cool-post\u002F\u003C\u002Fp>\n\u003Cp>With the new ‘\u002F%category%\u002F%postname%\u002F’ structure the URL will now be:\u003Cbr \u002F>\nhttp:\u002F\u002Fmy-cool-domain.com\u002Fnews\u002Fmy-cool-post\u002F\u003C\u002Fp>\n\u003Cp>But.. your old http:\u002F\u002Fmy-cool-domain.com\u002Fmy-cool-post\u002F is now generating a 404.\u003C\u002Fp>\n\u003Cp>Well, not anymore, “Postname Permalink Auto Redirect” to the rescue! The plugin will 301 redirect your http:\u002F\u002Fmy-cool-domain.com\u002Fmy-cool-post\u002F to http:\u002F\u002Fmy-cool-domain.com\u002Fnews\u002Fmy-cool-post\u002F automatically. You won’t lose your SEO and you’ll also tell the search engines that your page moved somewhere else.\u003C\u002Fp>\n\u003Cp>Notes:\u003Cbr \u002F>\n* You should keep the old postname slugs, or the plugin will not be able to find the posts based old links request.\u003Cbr \u002F>\n* This plugin supports WPML.\u003C\u002Fp>\n","This plugin will automatically 301 redirect your old 'postname' format permalinks so you don't lose your precious SEO.",700,16244,92,16,"2017-05-10T09:17:00.000Z","4.7.32","2.9.0",[99,100,101,102,103],"link","links","old-post-slugs","post-slug","post-slugs","https:\u002F\u002Fwww.frontkom.no\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpostname-permalink-auto-redirect.1.1.zip",{"slug":107,"name":108,"version":42,"author":109,"author_profile":110,"description":111,"short_description":112,"active_installs":91,"downloaded":113,"rating":93,"num_ratings":114,"last_updated":115,"tested_up_to":116,"requires_at_least":49,"requires_php":49,"tags":117,"homepage":121,"download_link":122,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"wp-change-custom-post-slug","WP Change Custom Posts Slugs","ThemeHeap","https:\u002F\u002Fprofiles.wordpress.org\u002Fthemeheap\u002F","\u003Cp>The plugin allows to can easily change slug of custom post types from WordPress admin panel.\u003Cbr \u002F>\nEmail us: abuzer@greelogix.com\u003C\u002Fp>\n\u003Ch3>OUR SERVICES\u003C\u002Fh3>\n\u003Cp>Project                                     Duration                Cost\u003Cbr \u002F>\nWoocommerce custom shop                     1d                      $240\u003Cbr \u002F>\nResponsiveness for 8 pages website              2d                          $400\u003Cbr \u002F>\nWPML configuration for multi-lang website       4h                          $120\u003Cbr \u002F>\nFashion magazine website with Avada theme       5d                          $1000\u003Cbr \u002F>\nLawFirm website with Avada theme                5d                          $1000\u003C\u002Fp>\n","The plugin allows to can easily change slug of custom post types from WordPress admin panel.",9117,11,"2020-10-16T06:43:00.000Z","5.5.18",[118,119,120],"custom-post-types","custom-slugs","wp-change-custom-posts-slugs","http:\u002F\u002Fthemeheap.com\u002Fportfolio-item\u002Fwp-change-custom-posts-slugs\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-change-custom-post-slug.zip",{"slug":124,"name":125,"version":6,"author":126,"author_profile":127,"description":128,"short_description":129,"active_installs":130,"downloaded":131,"rating":132,"num_ratings":81,"last_updated":133,"tested_up_to":134,"requires_at_least":135,"requires_php":49,"tags":136,"homepage":138,"download_link":139,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"slug-or-postid","Slug or PostID","unimakura","https:\u002F\u002Fprofiles.wordpress.org\u002Funimakura\u002F","\u003Cp>This plugin uses Slug or PostID for PostName. It is done automatically.\u003C\u002Fp>\n\u003Ch3>Arbitrary section\u003C\u002Fh3>\n\u003Cp>If you would like to post from other application for example “windows live writer”, you must use to WordPress 3.3 or higher. If you want to use PostId forcibly, please enter “postid” to slug.\u003C\u002Fp>\n","This plugin uses Slug or PostID for PostName. It is done automatically.",600,3583,60,"2013-02-06T11:29:00.000Z","3.4.2","3.1",[137,19,23],"plugin","http:\u002F\u002Funimakura.jp\u002Fwordpress\u002Fslug-or-postid.html","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fslug-or-postid.1.0.zip",{"attackSurface":141,"codeSignals":153,"taintFlows":160,"riskAssessment":161,"analyzedAt":169},{"hooks":142,"ajaxHandlers":149,"restRoutes":150,"shortcodes":151,"cronEvents":152,"entryPointCount":13,"unprotectedCount":13},[143],{"type":144,"name":145,"callback":146,"priority":80,"file":147,"line":148},"filter","wp_insert_post_data","set_post_name","random-post-name.php",32,[],[],[],[],{"dangerousFunctions":154,"sqlUsage":155,"outputEscaping":157,"fileOperations":13,"externalRequests":13,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":159},[],{"prepared":48,"raw":13,"locations":156},[],{"escaped":13,"rawEcho":13,"locations":158},[],[],[],{"summary":162,"deductions":163},"The \"random-post-name\" v1.0 plugin exhibits an exceptionally strong security posture based on the provided static analysis and vulnerability history.  The attack surface is non-existent, with no AJAX handlers, REST API routes, shortcodes, or cron events exposed, meaning there are no direct entry points for potential attackers.  Furthermore, the code analysis reveals a complete absence of dangerous functions, raw SQL queries, unescaped output, file operations, external HTTP requests, and importantly, no nonce or capability checks are implemented, which is a double-edged sword. This lack of checks, while contributing to the zero attack surface, also means that if any entry points were to be added in the future, they would be completely unprotected.\n\nThe taint analysis shows no flows with unsanitized paths, indicating that user-supplied data, if it were ever processed, is not being mishandled in a way that would lead to injection vulnerabilities. The vulnerability history is also clean, with no recorded CVEs, past or present, which suggests a history of secure development and maintenance. However, the complete absence of nonce and capability checks is a significant concern. While there are currently no entry points to exploit this, any future updates or additions to the plugin that introduce such entry points would immediately become vulnerable due to these missing security mechanisms. This plugin's current state is secure due to its extreme minimalism, but it lacks fundamental security safeguards that are essential for any interactive plugin.",[164,167],{"reason":165,"points":166},"Missing capability checks",15,{"reason":168,"points":166},"Missing nonce checks","2026-03-17T01:36:54.422Z",{"wat":171,"direct":176},{"assetPaths":172,"generatorPatterns":173,"scriptPaths":174,"versionParams":175},[],[],[],[],{"cssClasses":177,"htmlComments":178,"htmlAttributes":179,"restEndpoints":180,"jsGlobals":181,"shortcodeOutput":182},[],[],[],[],[],[]]