[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fWVQ5iXpgAhNs4N0cBsjrBdBbzs79mO-xMJqtRerhZf4":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":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":37,"analysis":135,"fingerprints":332},"more-types","More Types","1.2","henrikmelin","https:\u002F\u002Fprofiles.wordpress.org\u002Fhenrikmelin\u002F","\u003Cp>More Types is a WordPress plugin that adds new post types to the WordPress admin. For instance, if you run a music site you could create a review post type (based on the post). If you run a food blog you could create a post type for recipes.\u003C\u002Fp>\n\u003Cp>If you use More Fields in addition to More Types you could for instance add an input field where you put the ingredients and another where you input cooking time.\u003C\u002Fp>\n\u003Cp>With More Types you can:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Create additional post types\u003C\u002Fli>\n\u003Cli>Allow different WordPress User roles to have different rights to review, save, and publish a specific post type (even built in post types)\u003C\u002Fli>\n\u003Cli>List posts in specific menus in the WordPress admin\u003C\u002Fli>\n\u003Cli>Set a range of editing capabilities of the post type based on user level\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>More Types is part of a suite of plugins created to enhance the functionality of a vanilla WordPress installation. With More Fields you can create additional input fields for easier management of Custom fields, with More Taxonomies you can create additional taxonomies besides Categories and Tags. More Types works without the other plugins but interacts with them nicely.\u003C\u002Fp>\n\u003Cp>This plugins was born out of the development work done for \u003Ca href=\"http:\u002F\u002Fdagensskiva.com\u002F\" rel=\"nofollow ugc\">Dagensskiva\u003C\u002Fa>, \u003Ca href=\"http:\u002F\u002Fdagensbok.com\u002F\" rel=\"nofollow ugc\">Dagensbok\u003C\u002Fa> and user requests.\u003C\u002Fp>\n\u003Ch3>Upgrading from More Fields 1.x?\u003C\u002Fh3>\n\u003Cp>If you’re upgrading from More Fields 1.x you need to take a couple of steps to continue working with your already defined Post Types.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Upgrade to More Fields 1.5.1 (this prepares the More Fields fields and Post types for WP 3.0)\u003C\u002Fli>\n\u003Cli>Update to WordPress 3.0 still using More Fields 1.5.1\u003C\u002Fli>\n\u003Cli>Upgrade to More Fields 2.0\u003C\u002Fli>\n\u003Cli>Install More Types 1.0\u003C\u002Fli>\n\u003C\u002Fol>\n","Adds any number of extra Post types, besides Post and Page, for the WordPess Admin. Also allows for special editing rights for specific User roles for &hellip;",900,38030,100,2,"2011-09-03T07:21:00.000Z","3.1.4","3.1","",[20,21,22,23,24],"admin","cms","custom-post-types","extra-content","post-type","http:\u002F\u002Flabs.dagensskiva.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmore-types.1.2.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":33,"avg_security_score":27,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},1200,30,84,"2026-04-04T06:04:04.472Z",[38,61,81,98,119],{"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":59,"download_link":60,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"post-admin-word-count","Post Admin Word Count","2.0","Jon Bishop","https:\u002F\u002Fprofiles.wordpress.org\u002Fjonbishop\u002F","\u003Cp>Post Admin Word Count adds a sortable “Words” column to the WordPress admin for all public post types. This lightweight plugin automatically calculates and stores word counts when posts are saved or viewed in the admin, ensuring performance and accuracy without scanning your entire site. It supports custom post types, integrates cleanly with the WordPress admin UI and adheres to modern coding standards. Ideal for publishers, bloggers and content editors who want quick insight into post length directly from the dashboard.\u003C\u002Fp>\n","Adds a sortable word count column to the admin post list for all public post types. Efficient, lightweight and built with modern best practices.",3000,11234,70,6,"2025-05-22T03:55:00.000Z","6.8.5","5.0","7.2",[55,56,22,57,58],"admin-columns","content-analysis","post-word-count","word-count","https:\u002F\u002Fjonbishop.com\u002Fdownloads\u002Fwordpress-plugins\u002Fpost-admin-word-count\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-admin-word-count.2.0.zip",{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":13,"num_ratings":71,"last_updated":72,"tested_up_to":73,"requires_at_least":74,"requires_php":18,"tags":75,"homepage":79,"download_link":80,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"super-cpt","SuperCPT","0.2.1","Matthew Boynes","https:\u002F\u002Fprofiles.wordpress.org\u002Fmboynes\u002F","\u003Ch4>UPGRADE NOTICE\u003C\u002Fh4>\n\u003Cp>SuperCPT now uses Font Awesome instead of Glyphicons. Some icon names will carry over, but not all. If this is a considerable inconvenience for you for a project, simply do not update it. It’s not a security release, so updating isn’t necessary.\u003C\u002Fp>\n\u003Ch4>Overview\u003C\u002Fh4>\n\u003Cp>SuperCPT is an object wrapper for Custom Post Types, Custom Taxonomies, and Custom Post Meta “for coders, by coders.” Simply put, SuperCPT:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>DRYs up the Custom Post Type and Custom Taxonomy process (e.g. automatically adds the name to all the labels),\u003C\u002Fli>\n\u003Cli>allows you to set default options for all your Custom Post Types and Taxonomies,\u003C\u002Fli>\n\u003Cli>significantly simplifies the process of creating, saving, and displaying Custom Post Meta,\u003C\u002Fli>\n\u003Cli>is sexy! Your custom fields are styled to look great and SuperCPT comes with 361 awesome icons courtesy of \u003Ca href=\"http:\u002F\u002Ffontawesome.io\u002F\" rel=\"nofollow ugc\">Font Awesome\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Demo Video\u003C\u002Fh4>\n\u003Cdiv class=\"embed-vimeo\" style=\"text-align: center;\">\u003Ciframe loading=\"lazy\" src=\"https:\u002F\u002Fplayer.vimeo.com\u002Fvideo\u002F59368054\" width=\"750\" height=\"422\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen>\u003C\u002Fiframe>\u003C\u002Fdiv>\n\u003Ch4>TextMate\u002FSublime Text 2 Bundle\u003C\u002Fh4>\n\u003Cp>If you use TextMate, Sublime Text 2, or another editor which supports TextMate bundles, check out \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmboynes\u002Fsuper-cpt-bundle\" rel=\"nofollow ugc\">this set of snippets\u003C\u002Fa> to turbo-charge your development.\u003C\u002Fp>\n\u003Ch4>And more…\u003C\u002Fh4>\n\u003Cp>See the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fsuper-cpt\u002Fother_notes\u002F\" rel=\"ugc\">Other Notes tab\u003C\u002Fa> for instructions and demo code. Find more demos and a full reference \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmboynes\u002Fsuper-cpt\u002Fwiki\" rel=\"nofollow ugc\">at GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Since you’re a hard-core coder, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmboynes\u002Fsuper-cpt\" rel=\"nofollow ugc\">check this out on GitHub\u003C\u002Fa> if you want to contribute!\u003C\u002Fp>\n\u003Ch3>Instructions\u003C\u002Fh3>\n\u003Cp>Depending on when and where you’re declaring your Custom Post Types and Taxonomies, you have different options for which action to hook onto. \u003Ccode>after_setup_theme\u003C\u002Fcode> is the safest bet, but if you’re referencing this in another plugin, \u003Ccode>plugins_loaded\u003C\u002Fcode> is a good choice. To avoid a fatal error if something goes awry, you should check to see if the class \u003Ccode>Super_Custom_Post_Type\u003C\u002Fcode> exists before referencing it. Don’t worry about keeping up, reference code is below.\u003C\u002Fp>\n\u003Ch4>Custom Post Types\u003C\u002Fh4>\n\u003Cp>To define a new Custom Post Type, instantiate the \u003Ccode>Super_Custom_Post_Type\u003C\u002Fcode> class with a string for the post type. For example,\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$movies = new Super_Custom_Post_Type( 'movie' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>It works very much like \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FFunction_Reference\u002Fregister_post_type\" rel=\"nofollow ugc\">\u003Ccode>register_post_type\u003C\u002Fcode>\u003C\u002Fa>. The first thing you gained by using this is that the labels all got setup with either ‘Movie’ or ‘Movies’. If our post type were ‘indie-film’, the labels would have “Indie Film” and “Indie Films” as appropriate. Of course, you do have the ability to set the plural word in cases such as goose\u002Fgeese. You also gained the ability to define your own custom post type defaults through a filter. Lastly, you gained access to \u003Ccode>Super_Custom_Post_Type\u003C\u002Fcode>‘s parent class, \u003Ccode>Super_Custom_Post_Meta\u003C\u002Fcode>, for fast, clean, intuitive custom post meta, which we’ll go into shortly.\u003C\u002Fp>\n\u003Cp>Lastly, if you’ve built a lot of custom post types, you’re probably sick and tired of the pushpin icon. SuperCPT comes with 350 gorgeous icons courtesy of \u003Ca href=\"http:\u002F\u002Ffontawesome.io\u002F\" rel=\"nofollow ugc\">Font Awesome\u003C\u002Fa> that are extremely easy to implement. Here’s what it looks like:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$movies->set_icon( 'film' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Custom Taxonomies\u003C\u002Fh4>\n\u003Cp>To define a new Custom Taxonomy, much like with Custom Post Types, you instantiate \u003Ccode>Super_Custom_Taxonomy\u003C\u002Fcode> with a string for the term name. For example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$actors = new Super_Custom_Taxonomy( 'actor' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Again, we got free labels for doing this, using either ‘Actor’ or ‘Actors’ as appropriate, without needing to specify the 16 labels individually.\u003C\u002Fp>\n\u003Ch4>Custom Post Meta\u003C\u002Fh4>\n\u003Cp>Custom Post Meta is where SuperCPT shines the brightest, because this process is typically the most time-consuming. \u003Ccode>Super_Custom_Post_Meta\u003C\u002Fcode> is a free-standing class that can be added to any post type, even built-in post types (posts and pages). This class has a method \u003Ccode>add_meta_box\u003C\u002Fcode> which does the bulk of the work, and somewhat mimics the WordPress function. Here’s an example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$movies->add_meta_box( array(\n    'id' => 'features',\n    'fields' => array(\n        'tagline' => array( 'type' => 'text' )\n    )\n) );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The method \u003Ccode>add_meta_box\u003C\u002Fcode> takes an array of parameters (unlike the core function which takes normal ordered arguments). \u003Ccode>id\u003C\u002Fcode> is the only required attribute, and that becomes the ID of the meta box as well as the title (this will get converted into “words” for the title, e.g. \u003Ccode>\"movie_details\"\u003C\u002Fcode> would become “Movie Details”). \u003Ccode>fields\u003C\u002Fcode> is an array of all the fields in the meta box. It’s an associative array, where the keys in the array are the field names and the values are another associative array of attributes for the field. The keys closely reflect the HTML attributes in the resulting field, and any key not known by the plugin will in fact become an HTML attribute (e.g. passing \u003Ccode>'data-src' => 'foo'\u003C\u002Fcode> would become the HTML attribute \u003Ccode>data-src=\"foo\"\u003C\u002Fcode> in the field). See the reference for the full gamut of options, both for the \u003Ccode>add_meta_box\u003C\u002Fcode> argument array and the fields array.\u003C\u002Fp>\n\u003Cp>Long story short, using this class means you don’t have to do any additional work to store data, retrieve data, style the boxes, and so on.\u003C\u002Fp>\n\u003Ch4>Helper Functions\u003C\u002Fh4>\n\u003Cp>SuperCPT has a couple of helper functions for displaying your post meta. \u003Ccode>get_scpt_formatted_meta\u003C\u002Fcode> and \u003Ccode>the_scpt_formatted_meta\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch3>Demo Code\u003C\u002Fh3>\n\u003Cp>Here is the full demo code:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function scpt_demo() {\n    if ( ! class_exists( 'Super_Custom_Post_Type' ) )\n        return;\n\n    $demo_posts = new Super_Custom_Post_Type( 'demo-post' );\n\n    # Test Icon. Should be a square grid.\n    $demo_posts->set_icon( 'th-large' );\n\n    # Taxonomy test, should be like tags\n    $tax_tags = new Super_Custom_Taxonomy( 'tax-tag' );\n\n    # Taxonomy test, should be like categories\n    $tax_cats = new Super_Custom_Taxonomy( 'tax-cat', 'Tax Cat', 'Tax Cats', 'category' );\n\n    # Connect both of the above taxonomies with the post type\n    connect_types_and_taxes( $demo_posts, array( $tax_tags, $tax_cats ) );\n\n    # Add a meta box with every field type\n    $demo_posts->add_meta_box( array(\n        'id' => 'demo-fields',\n        'context' => 'normal',\n        'fields' => array(\n            'textbox-demo' => array(),\n            'textarea-demo' => array( 'type' => 'textarea' ),\n            'wysiwyg-demo' => array( 'type' => 'wysiwyg' ),\n            'boolean-demo' => array( 'type' => 'boolean' ),\n            'checkboxes-demo' => array( 'type' => 'checkbox', 'options' => array( 'one', 'two', 'three' ) ),\n            'radio-buttons-demo' => array( 'type' => 'radio', 'options' => array( 'one', 'two', 'three' ) ),\n            'select-demo' => array( 'type' => 'select', 'options' => array( 1 => 'one', 2 => 'two', 3 => 'three' ) ),\n            'multi-select-demo' => array( 'type' => 'select', 'options' => array( 'one', 'two', 'three' ), 'multiple' => 'multiple' ),\n            'date-demo' => array( 'type' => 'date' ),\n            'label-override-demo' => array( 'label' => 'Label Demo' )\n        )\n    ) );\n\n    # Add another CPT to test one-to-one (it could just as easily be one-to-many or many-to-many)\n    $linked_posts = new Super_Custom_Post_Type( 'linked-post', 'Other Post', 'Other Posts' );\n    $linked_posts->add_meta_box( array(\n        'id' => 'one-to-one',\n        'title' => 'Testing One-to-One relationship',\n        'context' => 'side',\n        'fields' => array(\n            'demo-posts' => array( 'type' => 'select', 'data' => 'demo-post' ),\n            'side-wysiwyg' => array( 'type' => 'wysiwyg' )\n        )\n    ) );\n    $linked_posts->set_icon( 'cogs' );\n\n}\nadd_action( 'after_setup_theme', 'scpt_demo' );\u003Ch3>To-Do\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>1. Add better support for multiple fields for one meta key\u003Cbr \u002F>\n2. Add easy RSS feeds, e.g. in fields array, a parameter might be \u003Ccode>'rss' => 'PubDate'\u003C\u002Fcode> to prefer that field’s data over the post’s publication date.\u003C\u002Fp>\n","Insanely easy and attractive custom post types, custom post meta, and custom taxonomies",700,18930,14,"2013-08-10T20:33:00.000Z","3.6.1","3.0",[21,76,77,78,22],"custom-field","custom-fields","custom-post-type","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fsuper-cpt\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsuper-cpt.0.2.1.zip",{"slug":82,"name":83,"version":84,"author":7,"author_profile":8,"description":85,"short_description":86,"active_installs":87,"downloaded":88,"rating":13,"num_ratings":89,"last_updated":90,"tested_up_to":91,"requires_at_least":91,"requires_php":18,"tags":92,"homepage":96,"download_link":97,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"more-taxonomies","More Taxonomies","1.1","\u003Cp>This is an early beta – fixes and better documentation to come. Promise.\u003C\u002Fp>\n","Add more taxonomies to your WordPress installation.",300,19281,1,"2011-09-02T15:42:00.000Z","3.2.1",[20,21,93,94,95],"more-fields","post-types","taxonomies","http:\u002F\u002Flabs.dagensskiva.com\u002Fplugins\u002Fmore-taxonomies\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmore-taxonomies.1.1.zip",{"slug":99,"name":100,"version":101,"author":102,"author_profile":103,"description":104,"short_description":105,"active_installs":106,"downloaded":107,"rating":13,"num_ratings":89,"last_updated":108,"tested_up_to":109,"requires_at_least":110,"requires_php":111,"tags":112,"homepage":116,"download_link":117,"security_score":118,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"at-a-glance-widget-plus","At A Glance Widget Plus","1.0.0","Lax Mariappan","https:\u002F\u002Fprofiles.wordpress.org\u002Flakshmananphp\u002F","\u003Cp>A WordPress plugin to extend the core at a glance widget. This adds available custom post types and their count on at a glance widget.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Thanks to \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Ffive-for-the-future\u002Fpledge\u002Fwebdevstudios\u002F\" rel=\"ugc\">WebDevStudios\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsalcode\" rel=\"nofollow ugc\">Sal Ferrarello\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Ftw2113\u002F\" rel=\"nofollow ugc\">Michael Beckwith\u003C\u002Fa>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>created as part of \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Ffive-for-the-future\u002F\" rel=\"ugc\">#5FTF\u003C\u002Fa> day\u003C\u002Fli>\n\u003C\u002Ful>\n","A WordPress plugin to extend the core at a glance widget. This adds available custom post types and their count on at a glance widget.",20,1048,"2024-07-10T21:54:00.000Z","6.6.5","6.1","7.4",[20,113,22,114,115],"at-a-glance","dashboard","stats","https:\u002F\u002Fgithub.com\u002Flaxmariappan\u002Fat-a-glance-widget-plus","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fat-a-glance-widget-plus.1.0.0.zip",92,{"slug":120,"name":121,"version":122,"author":123,"author_profile":124,"description":125,"short_description":126,"active_installs":127,"downloaded":128,"rating":28,"num_ratings":28,"last_updated":18,"tested_up_to":91,"requires_at_least":129,"requires_php":18,"tags":130,"homepage":132,"download_link":133,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":134},"abandon-theme-options","Abandon Themes Admin","0.7.4","abbandunne","https:\u002F\u002Fprofiles.wordpress.org\u002Fabbandunne\u002F","\u003Cp>This is a WordPress plugin aimed at template designers who have mid range experience of PHP and theme development or experienced designers who want to speed up their workflow. What it does is let you add an options page to your theme with a host of various options to improve its functionality. All you need to do is add a short function in your themes functions.php file to turn on the features you want to use.\u003C\u002Fp>\n","This is a WordPress plugin that adds an admin options page to your theme and all the main options a theme designer would need.",10,3193,"3",[131,22],"admin-options-page","http:\u002F\u002Fabandon.ie\u002Fabandon-options-plugin\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fabandon-theme-options.zip","2026-03-15T10:48:56.248Z",{"attackSurface":136,"codeSignals":199,"taintFlows":294,"riskAssessment":322,"analyzedAt":331},{"hooks":137,"ajaxHandlers":195,"restRoutes":196,"shortcodes":197,"cronEvents":198,"entryPointCount":28,"unprotectedCount":28},[138,143,146,150,155,159,163,166,168,171,175,178,181,184,187,189,192],{"type":139,"name":140,"callback":140,"file":141,"line":142},"action","admin_menu","more-plugins\\more-plugins-admin.php",106,{"type":139,"name":144,"callback":144,"file":141,"line":145},"admin_head",107,{"type":147,"name":148,"callback":148,"priority":127,"file":141,"line":149},"filter","plugin_row_meta",119,{"type":139,"name":151,"callback":152,"priority":153,"file":141,"line":154},"init","admin_init",11,121,{"type":139,"name":151,"callback":156,"file":157,"line":158},"load_save_files","more-plugins\\more-plugins.php",43,{"type":139,"name":151,"callback":160,"priority":106,"file":161,"line":162},"init_post_types","more-types-object.php",9,{"type":139,"name":152,"callback":164,"priority":165,"file":161,"line":127},"add_boxes_to_post_type",21,{"type":147,"name":167,"callback":167,"priority":162,"file":161,"line":153},"template_redirect",{"type":139,"name":151,"callback":169,"priority":89,"file":161,"line":170},"set_default_data",13,{"type":139,"name":151,"callback":172,"priority":173,"file":161,"line":174},"set_modified_data",19,15,{"type":139,"name":140,"callback":176,"file":177,"line":49},"admin_menu_prune","more-types-settings-object.php",{"type":139,"name":179,"callback":180,"file":177,"line":174},"admin_head-post-new.php","add_new",{"type":139,"name":182,"callback":180,"file":177,"line":183},"admin_head-post.php",16,{"type":139,"name":179,"callback":185,"file":177,"line":186},"add_js",18,{"type":139,"name":188,"callback":185,"file":177,"line":173},"admin_head-page-new.php",{"type":139,"name":190,"callback":191,"file":177,"line":106},"wp_enqueue_scripts","enqueue_scripts",{"type":147,"name":193,"callback":193,"file":177,"line":194},"post_updated_messages",22,[],[],[],[],{"dangerousFunctions":200,"sqlUsage":201,"outputEscaping":203,"fileOperations":14,"externalRequests":28,"nonceChecks":89,"capabilityChecks":28,"bundledLibraries":293},[],{"prepared":28,"raw":28,"locations":202},[],{"escaped":204,"rawEcho":205,"locations":206},26,47,[207,210,212,214,216,218,219,221,223,225,227,229,231,233,235,237,239,241,242,243,244,246,248,249,250,252,253,254,256,258,260,262,264,266,268,270,271,273,275,277,279,281,283,285,287,289,291],{"file":141,"line":208,"context":209},220,"raw output",{"file":141,"line":211,"context":209},221,{"file":141,"line":213,"context":209},247,{"file":141,"line":215,"context":209},252,{"file":141,"line":217,"context":209},618,{"file":141,"line":217,"context":209},{"file":141,"line":220,"context":209},621,{"file":141,"line":222,"context":209},626,{"file":141,"line":224,"context":209},631,{"file":141,"line":226,"context":209},633,{"file":141,"line":228,"context":209},634,{"file":141,"line":230,"context":209},657,{"file":141,"line":232,"context":209},669,{"file":141,"line":234,"context":209},681,{"file":141,"line":236,"context":209},731,{"file":141,"line":238,"context":209},747,{"file":141,"line":240,"context":209},754,{"file":141,"line":240,"context":209},{"file":141,"line":240,"context":209},{"file":141,"line":240,"context":209},{"file":141,"line":245,"context":209},769,{"file":141,"line":247,"context":209},775,{"file":141,"line":247,"context":209},{"file":141,"line":247,"context":209},{"file":141,"line":251,"context":209},776,{"file":141,"line":251,"context":209},{"file":141,"line":251,"context":209},{"file":141,"line":255,"context":209},870,{"file":141,"line":257,"context":209},888,{"file":141,"line":259,"context":209},903,{"file":141,"line":261,"context":209},905,{"file":141,"line":263,"context":209},917,{"file":141,"line":265,"context":209},918,{"file":141,"line":267,"context":209},921,{"file":141,"line":269,"context":209},1092,{"file":141,"line":269,"context":209},{"file":141,"line":272,"context":209},1096,{"file":141,"line":274,"context":209},1129,{"file":141,"line":276,"context":209},1137,{"file":141,"line":278,"context":209},1146,{"file":141,"line":280,"context":209},1147,{"file":177,"line":282,"context":209},61,{"file":284,"line":173,"context":209},"more-types-settings.php",{"file":284,"line":286,"context":209},64,{"file":284,"line":288,"context":209},80,{"file":284,"line":290,"context":209},116,{"file":284,"line":292,"context":209},153,[],[295],{"entryPoint":296,"graph":297,"unsanitizedCount":28,"severity":321},"\u003Cmore-plugins-admin> (more-plugins\\more-plugins-admin.php:0)",{"nodes":298,"edges":317},[299,304,310,313],{"id":300,"type":301,"label":302,"file":141,"line":303},"n0","source","$_GET",375,{"id":305,"type":306,"label":307,"file":141,"line":308,"wp_function":309},"n1","sink","update_option() [Settings Manipulation]",576,"update_option",{"id":311,"type":301,"label":302,"file":141,"line":312},"n2",850,{"id":314,"type":306,"label":315,"file":141,"line":276,"wp_function":316},"n3","echo() [XSS]","echo",[318,320],{"from":300,"to":305,"sanitized":319},true,{"from":311,"to":314,"sanitized":319},"low",{"summary":323,"deductions":324},"The \"more-types\" v1.2 plugin exhibits a generally strong security posture based on the provided static analysis and vulnerability history. The absence of known CVEs and a complete lack of identified vulnerabilities in its history suggest a well-maintained and secure codebase. Furthermore, the static analysis reveals a very small attack surface with no discoverable AJAX handlers, REST API routes, shortcodes, or cron events, all of which are highly protected or absent. The plugin also demonstrates good practices regarding SQL queries, using prepared statements exclusively.  However, a significant concern lies in the output escaping, where only 36% of outputs are properly escaped. This indicates a potential for cross-site scripting (XSS) vulnerabilities, especially if user-provided data is reflected in the output without adequate sanitization. While no taint flows or dangerous functions were detected, the incomplete output escaping presents a notable risk that warrants attention. The presence of file operations and a single nonce check without any capability checks further suggests areas where more robust security controls might be beneficial. Overall, while the plugin avoids common and severe vulnerabilities, the output escaping deficiency is a critical weakness that needs to be addressed to achieve a truly secure state.",[325,328],{"reason":326,"points":327},"Low output escaping coverage",8,{"reason":329,"points":330},"No capability checks found",5,"2026-03-16T19:16:07.829Z",{"wat":333,"direct":340},{"assetPaths":334,"generatorPatterns":337,"scriptPaths":338,"versionParams":339},[335,336],"\u002Fwp-content\u002Fplugins\u002Fmore-types\u002Fmore-types-object.php","\u002Fwp-content\u002Fplugins\u002Fmore-types\u002Fmore-types-settings-object.php",[],[],[],{"cssClasses":341,"htmlComments":342,"htmlAttributes":343,"restEndpoints":344,"jsGlobals":345,"shortcodeOutput":347},[],[],[],[],[346],"more_types_script",[]]