[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fn0QzBRAoIuxQhlaqtkmxAnJs3XdmKgNPUEt_n25rdR8":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":22,"download_link":23,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":36,"analysis":130,"fingerprints":204},"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","",[20,21],"portfolio","post-type","https:\u002F\u002Fwptheming.com\u002Fportfolio-post-type\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fportfolio-post-type.1.0.1.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":24,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"downstairsdev",3,60400,30,84,"2026-04-04T03:49:54.476Z",[37,60,76,97,112],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":18,"download_link":56,"security_score":57,"vuln_count":58,"unpatched_count":25,"last_vuln_date":59,"fetched_at":27},"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",[20,54,21,55],"post","showcase","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fthemify-portfolio-post.1.3.1.zip",95,6,"2025-12-15 00:00:00",{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":68,"downloaded":69,"rating":47,"num_ratings":48,"last_updated":70,"tested_up_to":71,"requires_at_least":72,"requires_php":18,"tags":73,"homepage":18,"download_link":75,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"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",[74,20,21],"cpt","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fportfolio-toolkit.0.1.8.zip",{"slug":77,"name":78,"version":79,"author":80,"author_profile":81,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":47,"num_ratings":86,"last_updated":87,"tested_up_to":88,"requires_at_least":89,"requires_php":18,"tags":90,"homepage":95,"download_link":96,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"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",[91,92,20,93,94],"custom-post-type","custom-taxonomy","theme-zilla","themezilla","http:\u002F\u002Fthemezilla.com\u002Fplugins\u002Fzilla-portfolio","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fzillaportfolio.zip",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":105,"downloaded":106,"rating":25,"num_ratings":25,"last_updated":107,"tested_up_to":88,"requires_at_least":108,"requires_php":18,"tags":109,"homepage":110,"download_link":111,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"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",[91,20,21],"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fm4wp-portfolio\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fm4wp-portfolio.zip",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":105,"downloaded":120,"rating":25,"num_ratings":25,"last_updated":121,"tested_up_to":122,"requires_at_least":123,"requires_php":51,"tags":124,"homepage":128,"download_link":129,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"portfolio-cpt","Portfolio CPT","1.0.0","DannyCooper","https:\u002F\u002Fprofiles.wordpress.org\u002Fdannycooper\u002F","\u003Cp>Enables a \u003Cstrong>Portfolio\u003C\u002Fstrong> post type and \u003Cstrong>Portfolio Tags\u003C\u002Fstrong> taxonomy.\u003C\u002Fp>\n\u003Cp>The plugin adds a Portfolio tab to your admin menu, which allows you to add Items just as you would regular posts. This allows you to keep your work even if you change theme.\u003C\u002Fp>\n\u003Ch4>Bugs\u003C\u002Fh4>\n\u003Cp>If you find an issue, let us know \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fportfolio-cpt\" rel=\"ugc\">here\u003C\u002Fa>!\u003C\u002Fp>\n\u003Ch4>Contributions\u003C\u002Fh4>\n\u003Cp>Anyone is welcome to contribute to the Knowledge Base CPT plugin.\u003C\u002Fp>\n\u003Cp>There are various ways you can contribute:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Raise an \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fportfolio-cpt\" rel=\"ugc\">Issue\u003C\u002Fa> on GitHub\u003C\u002Fli>\n\u003Cli>Translate the Knowledge Base CPT plugin into \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fportfolio-cpt\" rel=\"nofollow ugc\">different languages\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Fol>\n","Enables a 'Portfolio' type and 'Portfolio Tags' taxonomy.",5017,"2018-08-30T17:50:00.000Z","4.9.29","4.0",[125,91,126,20,127],"art-portfolio","photography-portfolio","projects","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fportfolio-cpt\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fportfolio-cpt.zip",{"attackSurface":131,"codeSignals":182,"taintFlows":194,"riskAssessment":195,"analyzedAt":203},{"hooks":132,"ajaxHandlers":178,"restRoutes":179,"shortcodes":180,"cronEvents":181,"entryPointCount":25,"unprotectedCount":25},[133,140,144,151,155,158,162,167,171,175],{"type":134,"name":135,"callback":136,"priority":137,"file":138,"line":139},"filter","dashboard_glance_items","show",20,"includes\\class-gamajo-dashboard-glancer.php",38,{"type":134,"name":141,"callback":141,"file":142,"line":143},"body_class","includes\\class-gamajo-single-entry-term-body-classes.php",40,{"type":145,"name":146,"callback":147,"priority":148,"file":149,"line":150},"action","manage_posts_custom_column","display_thumbnail",10,"includes\\class-portfolio-post-type-admin.php",45,{"type":145,"name":152,"callback":153,"file":149,"line":154},"restrict_manage_posts","add_taxonomy_filters",48,{"type":134,"name":135,"callback":156,"priority":148,"file":149,"line":157},"add_glance_counts",51,{"type":145,"name":159,"callback":160,"file":149,"line":161},"admin_head","add_glance_icon",54,{"type":145,"name":163,"callback":164,"file":165,"line":166},"init","register","includes\\class-portfolio-post-type-registrations.php",28,{"type":145,"name":163,"callback":168,"file":169,"line":170},"load_plugin_textdomain","includes\\class-portfolio-post-type.php",52,{"type":145,"name":172,"callback":173,"file":169,"line":174},"wpmu_new_blog","activate_new_site",55,{"type":145,"name":163,"callback":176,"priority":47,"file":177,"line":157},"portfolio_post_type_init","portfolio-post-type.php",[],[],[],[],{"dangerousFunctions":183,"sqlUsage":184,"outputEscaping":186,"fileOperations":25,"externalRequests":25,"nonceChecks":25,"capabilityChecks":48,"bundledLibraries":193},[],{"prepared":48,"raw":25,"locations":185},[],{"escaped":148,"rawEcho":86,"locations":187},[188,191],{"file":149,"line":189,"context":190},81,"raw output",{"file":149,"line":192,"context":190},102,[],[],{"summary":196,"deductions":197},"The \"portfolio-post-type\" plugin v1.0.1 demonstrates a strong security posture based on the provided static analysis.  The absence of AJAX handlers, REST API routes, shortcodes, and cron events significantly limits the potential attack surface.  Furthermore, the code signals indicate responsible development practices, with all SQL queries utilizing prepared statements and a high percentage of output being properly escaped.  The presence of at least one capability check also suggests an awareness of WordPress's permission system. The plugin's vulnerability history is clean, with no recorded CVEs, which is a positive indicator of its security over time.\n\nWhile the plugin appears robust, the lack of nonce checks and the fact that only one capability check was found are minor areas for potential improvement.  The absence of taint analysis results could be due to a very limited code base or the analysis tools not identifying any such flows.  However, it's important to note that the absence of identified vulnerabilities does not guarantee complete security, especially as the plugin evolves. Overall, this plugin presents a low-risk profile, with its strengths in limited attack vectors and secure coding practices outweighing the minor concerns.\n\nIn conclusion, \"portfolio-post-type\" v1.0.1 is a securely coded plugin with a minimal attack surface and a history free of known vulnerabilities. The static analysis reveals good practices in SQL handling and output escaping. The main areas for minor consideration are the potential for missing nonce checks on any future additions to the attack surface and the limited number of capability checks identified. Given the current data, the overall risk is low.",[198,201],{"reason":199,"points":200},"Missing nonce checks on AJAX",5,{"reason":202,"points":31},"Limited capability checks found","2026-03-16T17:18:15.283Z",{"wat":205,"direct":214},{"assetPaths":206,"generatorPatterns":209,"scriptPaths":210,"versionParams":211},[207,208],"\u002Fwp-content\u002Fplugins\u002Fportfolio-post-type\u002Fcss\u002Fportfolio-post-type.css","\u002Fwp-content\u002Fplugins\u002Fportfolio-post-type\u002Fjs\u002Fportfolio-post-type.js",[],[208],[212,213],"portfolio-post-type\u002Fcss\u002Fportfolio-post-type.css?ver=","portfolio-post-type\u002Fjs\u002Fportfolio-post-type.js?ver=",{"cssClasses":215,"htmlComments":218,"htmlAttributes":219,"restEndpoints":221,"jsGlobals":222,"shortcodeOutput":224},[216,217],"portfolio-post-type-entry-title","portfolio-post-type-entry-meta",[],[220],"data-portfolio-id",[],[223],"PortfolioPostType",[225,226],"[portfolio]","[\u002Fportfolio]"]