[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fgB5LvlrcXarVkeCgfXIYpa4nYw3AHhH9jQ92dEWE7_8":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":21,"download_link":22,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25,"vulnerabilities":26,"developer":27,"crawl_stats":24,"alternatives":34,"analysis":128,"fingerprints":210},"multiple-portfolios","Multiple Portfolios","1.0.4","Quema Labs","https:\u002F\u002Fprofiles.wordpress.org\u002Fnicoandrade\u002F","\u003Cp>With this plugin you can create as many portfolios as you want. This means that you can have multiple portfolios with multiple items each. It also registers taxonomies for tags and categories for each portfolio.\u003C\u002Fp>\n\u003Cp>This plugin doesn’t change how portfolio items are displayed in your theme.  You’ll need to add templates for archive-portfolio.php and single-portfolio.php if you want to customize the display of portfolio items.\u003C\u002Fp>\n\u003Cp>It is based on the plugin Portfolio Post Types by Devin Price and Gary Jones but extended to allow multiple portfolios.\u003C\u002Fp>\n","With this plugin you can create as many portfolios as you want. This means that you can have multiple portfolios with multiple items each.",200,11495,0,"2019-01-03T23:33:00.000Z","5.0.25","3.7","",[19,20],"portfolio","post-type","https:\u002F\u002Fgithub.com\u002Fnicoandrade\u002FMultiple-Portfolios\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmultiple-portfolios.1.0.4.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":28,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":30,"avg_security_score":23,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},"nicoandrade",4,230,30,84,"2026-04-04T15:31:28.410Z",[35,53,76,92,113],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":45,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":17,"tags":50,"homepage":51,"download_link":52,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"portfolio-post-type","Portfolio Post Type","1.0.1","Devin Price","https:\u002F\u002Fprofiles.wordpress.org\u002Fdownstairsdev\u002F","\u003Cp>This plugin registers a custom post type for portfolio items.  It also registers separate portfolio taxonomies for tags and categories.  If featured images are selected, they will be displayed in the column view.\u003C\u002Fp>\n\u003Cp>This plugin doesn’t change how portfolio items are displayed in your theme.  You’ll need to add templates for archive-portfolio.php and single-portfolio.php if you want to customize the display of portfolio items.\u003C\u002Fp>\n","This plugin registers a custom post type for portfolio items.  It also registers separate portfolio taxonomies for tags and categories.",50000,878190,94,14,"2020-08-29T18:37:00.000Z","5.5.18","3.8",[19,20],"https:\u002F\u002Fwptheming.com\u002Fportfolio-post-type\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fportfolio-post-type.1.0.1.zip",{"slug":54,"name":55,"version":56,"author":57,"author_profile":58,"description":59,"short_description":60,"active_installs":61,"downloaded":62,"rating":63,"num_ratings":64,"last_updated":65,"tested_up_to":66,"requires_at_least":67,"requires_php":68,"tags":69,"homepage":17,"download_link":72,"security_score":73,"vuln_count":74,"unpatched_count":13,"last_vuln_date":75,"fetched_at":25},"themify-portfolio-post","Themify Portfolio Post","1.3.1","themifyme","https:\u002F\u002Fprofiles.wordpress.org\u002Fthemifyme\u002F","\u003Cp>Themify Portfolio Posts is a simple plugin that allows you to showcase your projects info in a clean layout. Minimal and sleek, you can click on each image of your gallery portfolio and opt to show further details such as the project type, client name, and commission date – or edit each heading and name your own.\u003C\u002Fp>\n\u003Cp>Themify Portfolio Post plugin is compatible with any theme and users can install it on their WordPress admin dashboard like all other plugins.\u003C\u002Fp>\n","Add a simple Portfolio post type to your site.",30000,666543,100,1,"2025-12-05T01:54:00.000Z","6.9.0","5.2","7.2",[19,70,20,71],"post","showcase","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fthemify-portfolio-post.1.3.1.zip",95,6,"2025-12-15 00:00:00",{"slug":77,"name":78,"version":79,"author":80,"author_profile":81,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":63,"num_ratings":64,"last_updated":86,"tested_up_to":87,"requires_at_least":88,"requires_php":17,"tags":89,"homepage":17,"download_link":91,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"portfolio-toolkit","Portfolio Toolkit","0.1.8","Dmitry Mayorov","https:\u002F\u002Fprofiles.wordpress.org\u002Fiamdmitrymayorov\u002F","\u003Cp>Portfolio Toolkit adds ‘portfolio’ post type with two taxonomies (Category and Tag). It also adds custom metabox with three fields: ‘Client’, ‘Date’ and ‘URL’.\u003Cbr \u002F>\nCheck out \u003Ca href=\"http:\u002F\u002Fdmitrymayorov.com\u002F2015\u002F06\u002F16\u002Fintroducing-portfolio-toolkit\u002F\" rel=\"nofollow ugc\">my website\u003C\u002Fa> for more info about the plugin.\u003C\u002Fp>\n\u003Ch3>0.1.8\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed: Make portfolio taxonomies appear in the editor\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>0.1.7\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added: Set ‘show_in_rest’ key to true so Gutenberg is enabled by default\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>0.1.6\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added: Compatibility with WordPress 5.0\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>0.1.5\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed: Minor Codesniffer warnings\u003C\u002Fli>\n\u003Cli>Changed: Portfolio taxonomy labels\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>0.1.4\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed: Minor Codesniffer warnings\u003C\u002Fli>\n\u003Cli>Added: Compatibility with WordPress 4.5\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>0.1.3\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed: Minor improvements and bug fixes\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>0.1.2\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added: Compatibility with WordPress 4.3\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>0.1.1\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed: Minor codesniffer warnings\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>0.1.0\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Initial Release\u003C\u002Fli>\n\u003C\u002Ful>\n","Adds portfolio functionality to your WordPress website.",600,19433,"2020-03-31T14:39:00.000Z","5.4.19","4.1",[90,19,20],"cpt","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fportfolio-toolkit.0.1.8.zip",{"slug":93,"name":94,"version":95,"author":96,"author_profile":97,"description":98,"short_description":99,"active_installs":100,"downloaded":101,"rating":63,"num_ratings":102,"last_updated":103,"tested_up_to":104,"requires_at_least":105,"requires_php":17,"tags":106,"homepage":111,"download_link":112,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"zillaportfolio","Zilla Portfolio","1.0","marksouthard","https:\u002F\u002Fprofiles.wordpress.org\u002Fmbsatunc\u002F","\u003Cp>This plugin adds the portfolio custom post type to your WordPress blog. By default, the plugin will append portfolio meta information (client, date, and project URL) to the portfolio post. It will prepend media elements (gallery, audio and video media) to portfolio posts.\u003C\u002Fp>\n\u003Ch3>Creating Themes for this Plugin\u003C\u002Fh3>\n\u003Cp>There are several handy bits that you can use within your theme:\u003Cbr \u002F>\n1. By default, the portfolio posts are displayed in the portfolio archive. However, you may want to create a custom page template that will display your portfolio posts. As such, you’ll need to disable the archives. In your theme’s function file, use the following code: \u003Ccode>\u003C?php if( !defined('TZP_DISABLE_ARCHIVE') ) define('TZP_DISABLE_ARCHIVE', TRUE); ?>\u003C\u002Fcode>\u003Cbr \u002F>\nThis will enable child themes to enable the portfolio archives if desired.\u003Cbr \u002F>\n2. Set custom slugs for ‘portfolio’ and ‘portfolio-type’ by defining constants for: \u003Ccode>TZP_SLUG\u003C\u002Fcode> and \u003Ccode>TZP_TAX_SLUG\u003C\u002Fcode>. After defining the constants, save the Permalink Settings. Also, define the constants as above to allow a child theme to customize the slugs.\u003Cbr \u002F>\n3. There are several actions and filters available for adding additional custom fields to the existings metaboxes. Have a look through metaboxes.php to see how these all play together.\u003Cbr \u002F>\n4. To prevent the media and meta from being added to the_content(), remove these filters: \u003Ccode>tzp_add_portfolio_post_media\u003C\u002Fcode> and \u003Ccode>tzp_add_portfolio_post_meta\u003C\u002Fcode>\u003Cbr \u002F>\n5. To update the image size used for galleries add a filter to ‘tzp_set_gallery_image_size’. Pass the string name or an array of the image size to be used.\u003C\u002Fp>\n\u003Ch3>Complete List of Constants and Actions\u002FFilters\u003C\u002Fh3>\n\u003Cp>\u003Cem>Constants\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>TZP_DISABLE_CSS\u003C\u002Fcode> set to true to prevent plugin from loading basic CSS\u003C\u002Fli>\n\u003Cli>\u003Ccode>TZP_PORTFOLIO_ORDER\u003C\u002Fcode> default is ‘ASC’\u003C\u002Fli>\n\u003Cli>\u003Ccode>TZP_PORTFOLIO_ORDERBY\u003C\u002Fcode> default is ‘menu_order’\u003C\u002Fli>\n\u003Cli>\u003Ccode>TZP_DISABLE_ARCHIVE\u003C\u002Fcode> default is false\u003C\u002Fli>\n\u003Cli>\u003Ccode>TZP_SLUG\u003C\u002Fcode> default is ‘portfolio’\u003C\u002Fli>\n\u003Cli>\u003Ccode>TZP_DISABLE_REWRITE\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>TZP_TAX_SLUG\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>TZP_DISABLE_MEDIAELEMENT_STYLE\u003C\u002Fcode> prevent the plugin from loading the default mediaelement stylesheet\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>Actions\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>tzp_portfolio_settings_meta_box_fields\u003C\u002Fcode> add meta fields to the settings section\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_portfolio_gallery_meta_box_fields\u003C\u002Fcode> add meta fields to the gallery section\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_portfolio_audio_meta_box_fields\u003C\u002Fcode> add meta fields to the audio section\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_portfolio_video_meta_box_fields\u003C\u002Fcode> add meta fields to the video section\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>Actions added in plugin that you may want to remove\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>tzp_add_custom_css\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_portfolios_display_order\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>Filters\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>tzp_metabox_fields_save\u003C\u002Fcode> add fields to be saved (use url, html, checkbox, or images for sanitization)\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_gallery_classes\u003C\u002Fcode> class added to gallery; default is tzp-portfolio-gallery\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_set_gallery_image_size\u003C\u002Fcode> default image size is ‘full’\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_portfolio_labels\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_portfolio_supports\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_portfolio_post_type_args\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_portfolio_type_labels\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_portfolio_type_args\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>Filters applied in plugin that you may want to remove\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>tzp_add_portfolio_post_media\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>tzp_add_portfolio_post_meta\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n","A complete portfolio plugin for creative folks",400,13543,2,"2016-03-31T15:27:00.000Z","4.5.33","3.5",[107,108,19,109,110],"custom-post-type","custom-taxonomy","theme-zilla","themezilla","http:\u002F\u002Fthemezilla.com\u002Fplugins\u002Fzilla-portfolio","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fzillaportfolio.zip",{"slug":114,"name":115,"version":116,"author":117,"author_profile":118,"description":119,"short_description":120,"active_installs":121,"downloaded":122,"rating":13,"num_ratings":13,"last_updated":123,"tested_up_to":104,"requires_at_least":124,"requires_php":17,"tags":125,"homepage":126,"download_link":127,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"m4wp-portfolio","M4WP Portfolio","1.0.2","Bobby Gunawan","https:\u002F\u002Fprofiles.wordpress.org\u002Fhelloguna1\u002F","\u003Cp>A plugin which adds portfolio custom post type for WordPress themes \u003Ca href=\"https:\u002F\u002Fmade4wp.com\" rel=\"nofollow ugc\">by Made4WP\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>This plugin adds a custom post type “portfolio” and other portfolio related backend features like taxonomies and meta boxes.\u003C\u002Fp>\n\u003Cp>This plugin DOES NOT add any front end display. You will need to add\u002Fedit your own “single-portfolio.php”, “archive-portfolio.php” or make a custom query for the post type “portfolio” to display the portfolio items.\u003C\u002Fp>\n\u003Cp>Although this plugin is meant to be used with Made4WP themes, please feel free to use it for your own themes as well.\u003C\u002Fp>\n\u003Cp>** UPDATE NOTICE **\u003Cbr \u002F>\nThe taxonomy “type” has been changed to “category”. If you had any portfolio items using the type taxonomy, you will need to recreate and switch them to use categories instead.\u003C\u002Fp>\n","A Made4WP plugin. This plugin adds the custom post type \"Portfolio\" and it's related features such as taxonomies or meta boxes.",300,14674,"2016-04-13T04:25:00.000Z","4.3.0",[107,19,20],"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fm4wp-portfolio\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fm4wp-portfolio.zip",{"attackSurface":129,"codeSignals":188,"taintFlows":203,"riskAssessment":204,"analyzedAt":209},{"hooks":130,"ajaxHandlers":184,"restRoutes":185,"shortcodes":186,"cronEvents":187,"entryPointCount":13,"unprotectedCount":13},[131,138,143,149,153,157,160,164,169,173,177,180],{"type":132,"name":133,"callback":134,"priority":135,"file":136,"line":137},"action","dashboard_glance_items","show",20,"includes\\class-gamajo-dashboard-glancer.php",38,{"type":139,"name":140,"callback":140,"file":141,"line":142},"filter","body_class","includes\\class-gamajo-single-entry-term-body-classes.php",40,{"type":132,"name":144,"callback":145,"priority":146,"file":147,"line":148},"manage_posts_custom_column","display_thumbnail",10,"includes\\class-multiple-portfolios-admin.php",59,{"type":132,"name":150,"callback":151,"file":147,"line":152},"restrict_manage_posts","add_taxonomy_filters",62,{"type":132,"name":154,"callback":155,"file":147,"line":156},"right_now_content_table_end","add_rightnow_counts",65,{"type":132,"name":133,"callback":158,"file":147,"line":159},"add_glance_counts",66,{"type":132,"name":161,"callback":162,"file":147,"line":163},"admin_head","add_icons",69,{"type":132,"name":165,"callback":166,"file":167,"line":168},"init","register","includes\\class-multiple-portfolios-registrations.php",27,{"type":132,"name":165,"callback":170,"file":171,"line":172},"load_plugin_textdomain","includes\\class-multiple-portfolios.php",52,{"type":132,"name":174,"callback":175,"file":171,"line":176},"wpmu_new_blog","activate_new_site",55,{"type":132,"name":165,"callback":178,"file":171,"line":179},"create_parent_portfolios_cpt",58,{"type":132,"name":165,"callback":181,"priority":63,"file":182,"line":183},"multiple_portfolios_init","multiple-portfolios.php",51,[],[],[],[],{"dangerousFunctions":189,"sqlUsage":190,"outputEscaping":192,"fileOperations":13,"externalRequests":13,"nonceChecks":13,"capabilityChecks":64,"bundledLibraries":202},[],{"prepared":64,"raw":13,"locations":191},[],{"escaped":193,"rawEcho":194,"locations":195},8,3,[196,198,200],{"file":136,"line":32,"context":197},"raw output",{"file":147,"line":199,"context":197},98,{"file":147,"line":201,"context":197},119,[],[],{"summary":205,"deductions":206},"The 'multiple-portfolios' plugin v1.0.4 exhibits a generally strong security posture based on the provided static analysis. The absence of AJAX handlers, REST API routes, shortcodes, and cron events with exposed entry points significantly limits the potential attack surface.  Furthermore, the code demonstrates good practices by utilizing prepared statements for its single SQL query and has a capability check in place. The lack of dangerous functions, file operations, and external HTTP requests further bolsters its security.  However, a minor concern arises from the output escaping, where 27% of outputs are not properly escaped. While this doesn't immediately indicate a vulnerability given the other security measures, it represents a potential area for improvement and could lead to XSS vulnerabilities if user-supplied data were ever to reach these unescaped outputs. The vulnerability history is completely clean, with no recorded CVEs, which is a highly positive indicator of the plugin's historical security and maintenance.  This suggests the developers are either very diligent or the plugin's functionality is limited enough to not attract significant vulnerabilities. The overall conclusion is that this plugin appears to be relatively secure, with its main weakness being a slight deficiency in output sanitization. The lack of any identified taint flows is also a very positive sign.",[207],{"reason":208,"points":194},"Unescaped output detected","2026-03-16T20:16:25.329Z",{"wat":211,"direct":224},{"assetPaths":212,"generatorPatterns":215,"scriptPaths":216,"versionParams":219},[213,214],"\u002Fwp-content\u002Fplugins\u002Fmultiple-portfolios\u002Fincludes\u002Fcss\u002Fmultiple-portfolios-admin.css","\u002Fwp-content\u002Fplugins\u002Fmultiple-portfolios\u002Fincludes\u002Fcss\u002Fmultiple-portfolios-single-entry.css",[],[217,218],"\u002Fwp-content\u002Fplugins\u002Fmultiple-portfolios\u002Fincludes\u002Fjs\u002Fmultiple-portfolios-admin.js","\u002Fwp-content\u002Fplugins\u002Fmultiple-portfolios\u002Fincludes\u002Fjs\u002Fmultiple-portfolios-single-entry.js",[220,221,222,223],"multiple-portfolios\u002Fincludes\u002Fcss\u002Fmultiple-portfolios-admin.css?ver=","multiple-portfolios\u002Fincludes\u002Fcss\u002Fmultiple-portfolios-single-entry.css?ver=","multiple-portfolios\u002Fincludes\u002Fjs\u002Fmultiple-portfolios-admin.js?ver=","multiple-portfolios\u002Fincludes\u002Fjs\u002Fmultiple-portfolios-single-entry.js?ver=",{"cssClasses":225,"htmlComments":229,"htmlAttributes":230,"restEndpoints":232,"jsGlobals":233,"shortcodeOutput":236},[226,227,228],"multiple-portfolios-admin-wrap","multiple-portfolios-wrap","multiple-portfolios-entry-terms",[],[231],"data-portfolio-id",[],[234,235],"multiple_portfolios_admin_params","multiple_portfolios_params",[237,238],"[portfolio]","[multiple_portfolio]"]