[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fFJ6VisYqFhF09qfNG_SuwC-GeKhouUYDi3GgpJD2bPA":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"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":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":37,"analysis":141,"fingerprints":237},"custom-permalinks-for-custom-post-types","Custom Permalinks for Custom Post Types","1.0.1","Aluka","https:\u002F\u002Fprofiles.wordpress.org\u002Fcx4djv\u002F","\u003Cp>Custom Permalinks for Custom Post Types is a plugin for WordPress which allow you change the permalink structure of Custom Post Types.\u003C\u002Fp>\n\u003Cp>It supports the following features:\u003Cbr \u002F>\n* Remove base slug of all public Custom Post Types\u003Cbr \u002F>\n* Supports multiple taxonomies for permalink\u003Cbr \u002F>\n* Supports hierarchical taxonomies for permalink\u003Cbr \u002F>\n* Allows to select primary term for permalink\u003Cbr \u002F>\n* Allows to exclude Custom Post Types from being affected by this plugin\u003C\u002Fp>\n\u003Ch3>Compatibility\u003C\u002Fh3>\n\u003Cp>This plugin is compatible with: WooCommerce, Polylang, WPML\u003C\u002Fp>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>This plugin doesn’t collect\u002Fstore any user related information.\u003C\u002Fp>\n","Remove base slug of Custom Post Types and change the permalink structure of Custom Post Types.",100,5100,3,"2020-04-13T09:38:00.000Z","5.4.19","4.5.0","5.3",[19,20,21,22,23],"custom-permalinks","custom-post-type","permalink","primary-term","remove-slug","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-permalinks-for-custom-post-types.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":11,"avg_security_score":26,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"cx4djv",1,30,84,"2026-04-03T19:59:10.916Z",[38,61,85,103,125],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":58,"download_link":59,"security_score":60,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"custom-post-type-permalinks","Custom Post Type Permalinks","3.5.3","Toro_Unit (Hiroshi Urabe)","https:\u002F\u002Fprofiles.wordpress.org\u002Ftoro_unit\u002F","\u003Cp>Custom Post Type Permalinks allow you edit the permalink structure of custom post type.\u003C\u002Fp>\n\u003Cp>Change custom taxonomy archive’s permalink to “example.org\u002Fpost_type\u002Ftaxonomy_name\u002Fterm_slug”. Can disable this fix.\u003C\u002Fp>\n\u003Cp>And support \u003Ccode>wp_get_archives( 'post_type=foo' )\u003C\u002Fcode> and post type date archive (ex. \u003Ccode>example.com\u002Fpost_type_slug\u002Fdate\u002F2010\u002F01\u002F01\u003C\u002Fcode> ).\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftorounit\u002Fcustom-post-type-permalinks\" rel=\"nofollow ugc\">This Plugin published on GitHub.\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Donation: Please send \u003Ca href=\"http:\u002F\u002Fwww.amazon.co.jp\u002Fregistry\u002Fwishlist\u002FCOKSXS25MVQV\" rel=\"nofollow ugc\">My Wishlist\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fwww.paypal.me\u002Ftorounit\" rel=\"nofollow ugc\">Paypal\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Translators\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Japanese(ja) – \u003Ca href=\"http:\u002F\u002Fwww.torounit.com\u002F\" rel=\"nofollow ugc\">Toro_Unit\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>French(fr_FR) – \u003Ca href=\"http:\u002F\u002Fgeoffrey.crofte.fr\u002F\" rel=\"nofollow ugc\">Geoffrey Crofte\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Russian(ru_RU) – \u003Ca href=\"http:\u002F\u002Folart.ru\" rel=\"nofollow ugc\">Olart\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fnatali_z\" rel=\"nofollow ugc\">Natali_Z\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Also checkout\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsimple-post-type-permalinks\u002F\" rel=\"ugc\">Simple Post Type Permalinks\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Setting on Code\u003C\u002Fh3>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>register_post_type( 'foo',\n    array(\n        'public' => true,\n        'has_archive' => true,\n        'rewrite' => array(\n            \"with_front\" => true\n        ),\n        'cptp_permalink_structure' => '%post_id%'\n    )\n);\u003C\u002Fpre>\n\u003Ch4>Exclude specific post type\u003C\u002Fh4>\n\u003Cpre>add_filter(  'cptp_is_rewrite_supported_by_foo',  '__return_false' );\n\n\u002F\u002F or\n\nadd_filter(  'cptp_is_rewrite_supported', function ( $support , $post_type ) {\n    if ( 'foo' === $post_type ) {\n        return false;\n    }\n    return $support;\n}, 10, 2);\u003C\u002Fpre>\n","Edit the permalink of custom post type.",200000,1713689,96,71,"2024-10-10T06:12:00.000Z","6.6.5","6.1","7.4",[55,20,56,21,57],"address","link","url","https:\u002F\u002Fgithub.com\u002Ftorounit\u002Fcustom-post-type-permalinks","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-post-type-permalinks.3.5.3.zip",92,{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":48,"num_ratings":71,"last_updated":72,"tested_up_to":73,"requires_at_least":74,"requires_php":75,"tags":76,"homepage":80,"download_link":81,"security_score":82,"vuln_count":83,"unpatched_count":27,"last_vuln_date":84,"fetched_at":29},"permalink-manager","Permalink Manager Lite","2.5.3.2","Maciej Bis","https:\u002F\u002Fprofiles.wordpress.org\u002Fmbis\u002F","\u003Cp>The native WordPress permalink system is designed to be simple and easy to configure. Permalink Manager extends it and allows you to define custom URL structures and edit individual permalinks exactly the way you want.\u003C\u002Fp>\n\u003Cp>The free version lets you manage URLs for \u003Cstrong>posts, pages, and custom post types\u003C\u002Fstrong>, while the Pro version also includes support for \u003Cstrong>categories, tags, and custom taxonomies\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fpermalinkmanager.pro\u002Fdocs\u002F?utm_source=wordpressorg\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fpermalinkmanager.pro\u002Ffeatures\u002F?utm_source=wordpressorg\" rel=\"nofollow ugc\">Buy Permalink Manager Pro\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>The plugin \u003Cstrong>supports all custom post types and taxonomies\u003C\u002Fstrong>, and it is compatible with popular plugins like WooCommerce, Yoast SEO, WPML, and Polylang.\u003C\u002Fp>\n\u003Cp>Permalink Manager \u003Cstrong>automatically redirects original and duplicate URLs\u003C\u002Fstrong> to the correct page. Using the \u003Ca href=\"https:\u002F\u002Fpermalinkmanager.pro\u002Fdocs\u002Fplugin-settings\u002Fcanonical-redirects\u002F\" rel=\"nofollow ugc\">canonical redirect\u003C\u002Fa>, it prevents the broken links that can hurt the UX and SEO, potentially causing a drop in organic traffic.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Change Single Permalinks\u003C\u002Fstrong>\u003Cbr \u002F>For a consistent and SEO-friendly URL structure, you may customize and \u003Ca href=\"https:\u002F\u002Fpermalinkmanager.pro\u002Fdocs\u002Fbasics\u002Fchange-permalink\u002F\" rel=\"nofollow ugc\">change the permalink\u003C\u002Fa> of each post, page, and custom post type item.  \u003Cem>Categories, tags & custom taxonomies terms permalinks can be edited in Permalink Manager Pro.\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customize URL Formats\u003C\u002Fstrong>\u003Cbr \u002F>Using the “Permastructures” settings, you can choose the default format for custom URLs using “Permastructures” settings. The new format will be applied automatically when a new post\u002Fterm is added or once the old permalinks are regenerated.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Post Types Support\u003C\u002Fstrong>\u003Cbr \u002F>Choose the post types and taxonomies you want to customize and exclude the rest of them. The plugin supports post types and taxonomies managed with ACF, Pods, JetEngine, Toolset Types, and other plugins.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Translate Permalinks\u003C\u002Fstrong>\u003Cbr \u002F>With WPML or Polylang active, Permalink Manager allows you to translate the slug and customize the URL structure for every language separately.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Remove Parent Slugs\u003C\u002Fstrong>\u003Cbr \u002F>Remove parent slugs from your WordPress URLs organize them hierarchically by \u003Ca href=\"https:\u002F\u002Fpermalinkmanager.pro\u002Fdocs\u002Ftutorials\u002Fadd-category-slug-wordpress-permalinks\u002F\" rel=\"nofollow ugc\">adding categories to custom permalinks\u003C\u002Fa>, all without writing a single line of code.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Canonical Redirect\u003C\u002Fstrong>\u003Cbr \u002F>Automatically redirect old URLs whenever they change, preventing broken links, and protecting your site’s search visibility.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Additional features available in Permalink Manager Pro\u003C\u002Fh4>\n\u003Cp>The free version covers all the necessary functions, while the premium version adds a few handy functionalities that can improve the process of adjusting WordPress permalinks.\u003C\u002Fp>\n\u003Cp>Click here for additional information and to purchase \u003Ca href=\"https:\u002F\u002Fpermalinkmanager.pro?utm_source=wordpress\" rel=\"nofollow ugc\">Permalink Manager Pro\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Custom Taxonomies Support\u003C\u002Fstrong>\u003Cbr \u002F>Taxonomies are fully supported in the premium version (categories, tags & custom taxonomies). You may adjust individual term permalinks or change them all at once using “Permastructures”.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Full WooCommerce Support\u003C\u002Fstrong>\u003Cbr \u002F>Permalink Manager Pro may be used to change the URL addresses of WooCommerce products, tags, categories, and attributes. For example, you may use the plugin to \u003Ca href=\"https:\u002F\u002Fpermalinkmanager.pro\u002Fdocs\u002Ftutorials\u002Fremove-product-category-woocommerce-urls\u002F\" rel=\"nofollow ugc\">remove \u002Fproduct\u002F and \u002Fproduct-category\u002F from WooCommerce URL\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Fields Support\u003C\u002Fstrong>\u003Cbr \u002F>Permalink Manager is the only actively supported WordPress plugin that allows to \u003Ca href=\"https:\u002F\u002Fpermalinkmanager.pro\u002Fdocs\u002Ftutorials\u002Fhow-to-use-custom-fields-inside-wordpress-permalinks\u002F\" rel=\"nofollow ugc\">add custom fields to permalinks\u003C\u002Fa> and requires no technical experience.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Extra Redirects\u003C\u002Fstrong>\u003Cbr \u002F>Define extra redirects (aliases) for any post, page, or term. Additionally, you may assign a redirect URL to each post\u002Fterm, which will take users to any external URL address.\u003C\u002Fli>\n\u003C\u002Ful>\n","Permalink Manager enhances WordPress’s built-in URL system, allowing you to change the URLs of native and custom post types and taxonomies.",100000,2718666,176,"2026-03-11T15:40:00.000Z","6.9.4","4.4.0","5.4",[77,19,21,78,79],"custom-permalink","permalinks","woocommerce-permalinks","https:\u002F\u002Fpermalinkmanager.pro?utm_source=plugin","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpermalink-manager.2.5.3.2.zip",91,11,"2025-09-06 00:00:00",{"slug":86,"name":87,"version":88,"author":89,"author_profile":90,"description":91,"short_description":92,"active_installs":93,"downloaded":94,"rating":35,"num_ratings":95,"last_updated":96,"tested_up_to":73,"requires_at_least":97,"requires_php":24,"tags":98,"homepage":101,"download_link":102,"security_score":11,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"remove-category-url","Remove Category URL – Remove 'category' base from category permalinks","1.2.1","Themeisle","https:\u002F\u002Fprofiles.wordpress.org\u002Fthemeisle\u002F","\u003Cp>Remove Category URL strips the \u003Ccode>\u002Fcategory\u002F\u003C\u002Fcode> base from your category URLs, turning something like \u003Ccode>\u002Fcategory\u002Fmy-category\u002F\u003C\u002Fcode> into simply \u003Ccode>\u002Fmy-category\u002F\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Just activate, and you’re done. No configuration needed.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Creates cleaner URLs like \u003Ccode>mydomain.com\u002Fmy-category\u002F\u003C\u002Fcode> and \u003Ccode>mydomain.com\u002Fmy-category\u002Fmy-post\u002F\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Works out of the box with no settings to configure\u003C\u002Fli>\n\u003Cli>Supports multiple sub-categories\u003C\u002Fli>\n\u003Cli>Automatically 301 redirects old category URLs to the new structure (SEO-friendly)\u003C\u002Fli>\n\u003Cli>Sitemaps are automatically updated with the new URLs after activation\u003C\u002Fli>\n\u003Cli>Compatible with WordPress Multisite, WPML, and popular sitemap plugins\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Why remove \u002Fcategory\u002F from URLs?\u003C\u002Fh3>\n\u003Cp>The \u003Ccode>\u002Fcategory\u002F\u003C\u002Fcode> base in WordPress URLs is there by default, but it doesn’t help your visitors or search engines understand your content any better. When you remove \u003Ccode>\u002Fcategory\u002F\u003C\u002Fcode> from URLs, you get cleaner paths like \u003Ccode>mydomain.com\u002Fnews\u002F\u003C\u002Fcode> instead of \u003Ccode>mydomain.com\u002Fcategory\u002Fnews\u002F\u003C\u002Fcode>. They’re shorter, easier to remember and share, and more consistent with how your pages are already structured.\u003C\u002Fp>\n\u003Cp>Shorter URLs also tend to look better in search results and make your site feel more polished overall. Removing the category base is a small change that makes your whole URL structure cleaner.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>We’re here to help. Feel free to open a new thread on the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fremove-category-url\u002F\" rel=\"ugc\">Support Forum\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Useful Resources\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>If you like this plugin, you’re sure to love \u003Ca href=\"https:\u002F\u002Fthemeisle.com\u002Fwordpress-plugins\u002F\" rel=\"nofollow ugc\">our other plugins\u003C\u002Fa> as well.\u003C\u002Fli>\n\u003Cli>Our blog is a great place to \u003Ca href=\"https:\u002F\u002Fthemeisle.com\u002Fblog\u002F\" rel=\"nofollow ugc\">learn more about WordPress\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Get the most out of your website with our helpful \u003Ca href=\"https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PLmRasCVwuvpSep2MOsIoE0ncO9JE3FcKP\" rel=\"nofollow ugc\">WordPress YouTube Tutorials\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n","Remove Category URL strips the \u002Fcategory\u002F base from your category URLs, turning something like \u002Fcategory\u002Fmy-category\u002F into simply \u002Fmy-category\u002F.",50000,479177,58,"2026-01-12T14:02:00.000Z","3.1",[19,78,99,100,86],"remove-category-base","remove-category-prefix","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fremove-category-url\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fremove-category-url.1.2.1.zip",{"slug":104,"name":105,"version":106,"author":107,"author_profile":108,"description":109,"short_description":110,"active_installs":111,"downloaded":112,"rating":11,"num_ratings":113,"last_updated":114,"tested_up_to":73,"requires_at_least":115,"requires_php":116,"tags":117,"homepage":121,"download_link":122,"security_score":123,"vuln_count":33,"unpatched_count":27,"last_vuln_date":124,"fetched_at":29},"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","3.0","5.6",[118,20,21,119,120],"base","remove","slug","https:\u002F\u002Fwww.paypal.me\u002Fjakubnovaksl","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fremove-cpt-base.6.7.zip",99,"2022-05-06 13:29:00",{"slug":126,"name":127,"version":128,"author":42,"author_profile":43,"description":129,"short_description":130,"active_installs":131,"downloaded":132,"rating":11,"num_ratings":133,"last_updated":134,"tested_up_to":135,"requires_at_least":136,"requires_php":17,"tags":137,"homepage":139,"download_link":140,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"simple-post-type-permalinks","Simple Post Type Permalinks","2.0.5","\u003Cp>Edit the permalink structure of custom post type too easy.\u003C\u002Fp>\n\u003Cp>Simple Post Type Permalinks is Simple and Smart than \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcustom-post-type-permalinks\u002F\" rel=\"ugc\">Custom Post Type Permalinks\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Available tags are \u003Ccode>%post_id%\u003C\u002Fcode>, \u003Ccode>%postname%\u003C\u002Fcode>, \u003Ccode>%year%\u003C\u002Fcode>, \u003Ccode>%monthnum%\u003C\u002Fcode>, \u003Ccode>%day%\u003C\u002Fcode>, \u003Ccode>%hour%\u003C\u002Fcode>, \u003Ccode>%minute%\u003C\u002Fcode>, \u003Ccode>%second%\u003C\u002Fcode>, \u003Ccode>%author%\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Requires PHP version 5.3 or higher.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftorounit\u002Fsimple-post-type-permalinks\" rel=\"nofollow ugc\">This Plugin published on GitHub.\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Please Fork and Pull Request!\u003C\u002Fp>\n\u003Ch3>Setting on Code\u003C\u002Fh3>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>register_post_type( 'foo',\n    array(\n        \"public\" => true,\n        'has_archive' => true,\n        \"rewrite\" => [\n            \"with_front\" => true\n        ],\n        \"sptp_permalink_structure\" => \"foo\u002F%post_id%\"\n    )\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Easy to change Permalink of custom post type.",9000,84434,10,"2019-06-04T22:43:00.000Z","5.2.24","4.0",[138,20,21,78],"cms","https:\u002F\u002Fgithub.com\u002Ftorounit\u002Fsimple-post-type-permalinks","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-post-type-permalinks.2.0.5.zip",{"attackSurface":142,"codeSignals":171,"taintFlows":199,"riskAssessment":228,"analyzedAt":236},{"hooks":143,"ajaxHandlers":167,"restRoutes":168,"shortcodes":169,"cronEvents":170,"entryPointCount":27,"unprotectedCount":27},[144,150,155,159,163],{"type":145,"name":146,"callback":147,"file":148,"line":149},"action","load-options-permalink.php","settings_permalink","custom-permalinks-for-custom-post-types.php",18,{"type":151,"name":152,"callback":153,"priority":133,"file":148,"line":154},"filter","post_type_link","custom_cpt_slug",20,{"type":145,"name":156,"callback":157,"file":148,"line":158},"pre_get_posts","set_cpt_to_main_query",22,{"type":151,"name":160,"callback":161,"file":148,"line":162},"rewrite_rules_array","custom_rewrites",23,{"type":145,"name":164,"callback":165,"priority":83,"file":148,"line":166},"init","P105_CustomPermalinks",447,[],[],[],[],{"dangerousFunctions":172,"sqlUsage":173,"outputEscaping":176,"fileOperations":27,"externalRequests":27,"nonceChecks":27,"capabilityChecks":27,"bundledLibraries":198},[],{"prepared":174,"raw":27,"locations":175},4,[],{"escaped":177,"rawEcho":133,"locations":178},5,[179,182,184,186,188,189,190,192,194,196],{"file":148,"line":180,"context":181},388,"raw output",{"file":148,"line":183,"context":181},390,{"file":148,"line":185,"context":181},391,{"file":148,"line":187,"context":181},392,{"file":148,"line":187,"context":181},{"file":148,"line":187,"context":181},{"file":148,"line":191,"context":181},403,{"file":148,"line":193,"context":181},432,{"file":148,"line":195,"context":181},433,{"file":148,"line":197,"context":181},435,[],[200,220],{"entryPoint":201,"graph":202,"unsanitizedCount":218,"severity":219},"settings_permalink (custom-permalinks-for-custom-post-types.php:253)",{"nodes":203,"edges":215},[204,209],{"id":205,"type":206,"label":207,"file":148,"line":208},"n0","source","$_POST (x2)",255,{"id":210,"type":211,"label":212,"file":148,"line":213,"wp_function":214},"n1","sink","update_option() [Settings Manipulation]",269,"update_option",[216],{"from":205,"to":210,"sanitized":217},false,2,"low",{"entryPoint":221,"graph":222,"unsanitizedCount":218,"severity":219},"\u003Ccustom-permalinks-for-custom-post-types> (custom-permalinks-for-custom-post-types.php:0)",{"nodes":223,"edges":226},[224,225],{"id":205,"type":206,"label":207,"file":148,"line":208},{"id":210,"type":211,"label":212,"file":148,"line":213,"wp_function":214},[227],{"from":205,"to":210,"sanitized":217},{"summary":229,"deductions":230},"The \"custom-permalinks-for-custom-post-types\" plugin v1.0.1 exhibits a mixed security posture. On the positive side, it demonstrates good practices by utilizing prepared statements for all its SQL queries and has no recorded vulnerabilities or CVEs. The absence of external HTTP requests, file operations, and bundled libraries further reduces its attack surface. However, there are significant concerns regarding output escaping and taint analysis.  The fact that only 33% of outputs are properly escaped suggests a high likelihood of cross-site scripting (XSS) vulnerabilities, particularly since the taint analysis found two flows with unsanitized paths, albeit without critical or high severity flags.\n\nThe plugin's vulnerability history, showing zero recorded issues, is a positive indicator of past security diligence.  However, this historical data, combined with the current static analysis findings, presents a nuanced view.  While the lack of historical vulnerabilities is reassuring, the identified issues with output escaping and unsanitized taint flows in the current version indicate potential weaknesses that could be exploited.  The plugin has a low attack surface with no direct entry points needing authentication, but the unescaped output remains a critical area of concern that could lead to security incidents if exploited.",[231,234],{"reason":232,"points":233},"Low percentage of properly escaped output",8,{"reason":235,"points":177},"Unsanitized paths in taint flows","2026-03-16T21:07:08.300Z",{"wat":238,"direct":247},{"assetPaths":239,"generatorPatterns":242,"scriptPaths":243,"versionParams":244},[240,241],"\u002Fwp-content\u002Fplugins\u002Fcustom-permalinks-for-custom-post-types\u002Fcss\u002Foptions-permalink.css","\u002Fwp-content\u002Fplugins\u002Fcustom-permalinks-for-custom-post-types\u002Fjs\u002Foptions-permalink.js",[],[241],[245,246],"custom-permalinks-for-custom-post-types\u002Fcss\u002Foptions-permalink.css?ver=","custom-permalinks-for-custom-post-types\u002Fjs\u002Foptions-permalink.js?ver=",{"cssClasses":248,"htmlComments":249,"htmlAttributes":250,"restEndpoints":251,"jsGlobals":252,"shortcodeOutput":255},[],[],[],[],[253,254],"p105_permalink_structure_cpt","links_cached",[]]