[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fTmKKAcSnsT656ZZIMGuwHq3OHCfX8cxj3B0WzeOWNYM":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":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":37,"analysis":137,"fingerprints":311},"post-type-column-editor","WP Admin Columns – Easy Admin Columns Builder for WordPress – Custom Post Types, Taxonomy, Users & More","1.0.5","Dipankar Pal","https:\u002F\u002Fprofiles.wordpress.org\u002Fdipankarpal212\u002F","\u003Cp>\u003Cstrong>WP Admin Columns\u003C\u002Fstrong> gives you complete control over the WordPress admin columns for any post type.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>✅ Add, edit, and remove columns from a simple interface  \u003C\u002Fli>\n\u003Cli>✅ Select or deselect all columns using the top-left checkbox  \u003C\u002Fli>\n\u003Cli>✅ Display post meta, static text, or use your own callback for full customization  \u003C\u002Fli>\n\u003Cli>✅ Works with all registered post types \u003Cem>(restricted types require Pro)\u003C\u002Fem>  \u003C\u002Fli>\n\u003Cli>✅ Beautiful, responsive interface\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>⚠️ \u003Cstrong>Pro-Only Features\u003C\u002Fstrong>\u003Cbr \u002F>\n– 🔄 Drag & drop column reordering\u003Cbr \u002F>\n– 🧩 Code editor popup for editing filter hook callbacks\u003Cbr \u002F>\n– 🛒 WooCommerce post type support\u003C\u002Fp>\n\u003Ch3>🔍 Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Add\u002Fedit\u002Fremove any admin columns  \u003C\u002Fli>\n\u003Cli>Enable\u002Fdisable columns per post type  \u003C\u002Fli>\n\u003Cli>Supports core fields, post fields, meta fields, additional fields and custom fields  \u003C\u002Fli>\n\u003Cli>Filter hook provided per column for rendering output  \u003C\u002Fli>\n\u003Cli>Clean, intuitive UI  \u003C\u002Fli>\n\u003Cli>Works with all custom post types  \u003C\u002Fli>\n\u003Cli>\u003Cem>(Pro)\u003C\u002Fem> Drag & drop reordering  \u003C\u002Fli>\n\u003Cli>\u003Cem>(Pro)\u003C\u002Fem> Built-in editor for custom callbacks  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🧩 Column Types Explained\u003C\u002Fh3>\n\u003Cp>\u003Cem>(In the “Edit Columns” popup for each post type)\u003C\u002Fem>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Core Field\u003C\u002Fstrong> – Native WordPress columns (e.g., Title, Date)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Only the label is editable  \u003C\u002Fli>\n\u003Cli>To customize, uncheck and re-add it as a custom field\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Post Field\u003C\u002Fstrong> – Columns from the \u003Ccode>wp_posts\u003C\u002Fcode> table (e.g., post_status, post_author)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Label is editable  \u003C\u002Fli>\n\u003Cli>Output can be modified via filter hook only\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Meta Field\u003C\u002Fstrong> – Auto-detected from the \u003Ccode>postmeta\u003C\u002Fcode> table\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Label is editable  \u003C\u002Fli>\n\u003Cli>Do \u003Cstrong>not\u003C\u002Fstrong> change the meta key — it must match the database exactly\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Custom Field\u003C\u002Fstrong> – Fully flexible\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Set your own key and label  \u003C\u002Fli>\n\u003Cli>Use the hook to render any content  \u003C\u002Fli>\n\u003Cli>Ideal for developers or integrating third-party fields\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Additional Field\u003C\u002Fstrong> –\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Useful derived values like featured image, word count etc. \u003C\u002Fli>\n\u003Cli>Filter hook can be used to modify the content  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by Dipankar Pal(dipankarpal212)\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPLv2 or later.\u003C\u002Fp>\n","Customize WordPress admin columns for post types, users, taxonomies & more. Add, reorder, or remove columns easily – no coding needed.",0,381,"2025-08-11T15:16:00.000Z","6.8.5","5.8","7.4",[18,19,20,21,22],"column","columns","post-type","taxonomy-column","wp-columns","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-type-column-editor.1.0.5.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":33,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"dipankarpal212",3,400,88,30,86,"2026-04-05T02:02:50.131Z",[38,61,82,99,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":14,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":59,"download_link":60,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"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","5.0","7.2",[54,55,56,57,58],"admin-columns","content-analysis","custom-post-types","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":33,"num_ratings":71,"last_updated":72,"tested_up_to":73,"requires_at_least":74,"requires_php":23,"tags":75,"homepage":79,"download_link":80,"security_score":81,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"genesis-easy-columns","Genesis Easy Columns","1.4","Code96","https:\u002F\u002Fprofiles.wordpress.org\u002Fcode96\u002F","\u003Cp>This plugin easily integrates Genesis column classes into your WordPress editor.  With the click of a button, you can now add column class shortcodes to your page or post.  You will no longer have to know any HTML or CSS.  Use the power of the built in Genesis column classes, with the simple click of a button.\u003C\u002Fp>\n\u003Cp>Includes 2, 3, 4, 5, and 6 column classes.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Not a Genesis User, I have included the necessary CSS within the plugin.  You can activate the optional CSS via Settings > Easy Columns or simply copy\u002Fpaste into your themes style.css.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Code 96 offers \u003Ca href=\"http:\u002F\u002Fwww.code96wd.com\" rel=\"nofollow ugc\">WordPress Design\u003C\u002Fa> services and custom \u003Ca href=\"http:\u002F\u002Fwww.code96wd.com\u002Fpremium-wordpress-themes\u002F\" rel=\"nofollow ugc\">WordPress Themes\u003C\u002Fa>.\u003C\u002Fp>\n","Easily add Genesis column shortcodes to your WordPress editor.",2000,51952,11,"2017-11-28T15:51:00.000Z","3.7.41","3.2",[19,76,77,78,22],"genesis-columns","genesis-columns-shortcode","wordpress-columns","http:\u002F\u002Fwww.code96wd.com\u002Fwordpress-plugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgenesis-easy-columns.1.4.zip",85,{"slug":83,"name":84,"version":85,"author":86,"author_profile":87,"description":88,"short_description":89,"active_installs":90,"downloaded":91,"rating":11,"num_ratings":11,"last_updated":23,"tested_up_to":92,"requires_at_least":93,"requires_php":23,"tags":94,"homepage":96,"download_link":97,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":98},"boones-sortable-columns","Boone's Sortable Columns","1.1","Boone Gorges","https:\u002F\u002Fprofiles.wordpress.org\u002Fboonebgorges\u002F","\u003Cp>Here’s how I recommend using the class.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Either activate this plugin, or include the class in your own plugin file.\u003C\u002Fli>\n\u003Cli>When you start to render the page with the post list, define some columns and then instantiate the class:\u003Cbr \u002F>\n$cols = array(\u003Cbr \u002F>\n    array(\u003Cbr \u002F>\n        ‘name’      => ‘restaurant_name’,\u003Cbr \u002F>\n        ‘title’     => ‘Restaurant Name’,\u003Cbr \u002F>\n        ‘css_class’ => ‘restaurant-name’,\u003Cbr \u002F>\n        ‘is_default’    => true\u003Cbr \u002F>\n    ),\u003Cbr \u002F>\n    array(\u003Cbr \u002F>\n        ‘name’      => ‘cuisine_type’,\u003Cbr \u002F>\n        ‘title’     => ‘Cuisine Type’,\u003Cbr \u002F>\n        ‘css_class’ => ‘cuisine-type’,\u003Cbr \u002F>\n        ‘default_order’ => ‘desc’\u003Cbr \u002F>\n    )\u003Cbr \u002F>\n);\u003Cbr \u002F>\n$sortable = new BBG_CPT_Sort( $cols );\u003C\u002Fli>\n\u003Cli>As you render your table, you can use all sorts of fun methods to create column headers. Example:\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>        have_columns() ) : ?>\u003Cbr \u002F>\n            have_columns() ) : $sortable->the_column() ?>\u003Cbr \u002F>\n                \u003Cth class=\"the_column_css_class() ?>”>\u003Cbr \u002F>\n                    \u003Ca href=\"the_column_next_link( ‘url’ ) ?>”>the_column_title() ?>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>        …\u003C\u002Fp>\n","A handy, extensible class for adding sortable columns your custom post type lists.",10,2806,"3.2.1","3.1",[19,56,95],"tables","http:\u002F\u002Fgithub.com\u002Fboonebgorges\u002Fboones-sortable-columns","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fboones-sortable-columns.1.1.zip","2026-03-15T10:48:56.248Z",{"slug":100,"name":101,"version":102,"author":103,"author_profile":104,"description":105,"short_description":106,"active_installs":90,"downloaded":107,"rating":11,"num_ratings":11,"last_updated":108,"tested_up_to":109,"requires_at_least":51,"requires_php":110,"tags":111,"homepage":116,"download_link":117,"security_score":118,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"hide-admin-columns","Hide Admin Columns","1.0.1","Bishoy.A","https:\u002F\u002Fprofiles.wordpress.org\u002Fbishoya\u002F","\u003Cp>Do you find the WordPress admin list tables cluttered with too many columns that you rarely use? \u003Cstrong>Hide Admin Columns\u003C\u002Fstrong> is here to rescue you from the chaos! This powerful plugin gives administrators the ability to hide specific columns in the admin list tables for custom post types, resulting in a cleaner, more focused view.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Why would you need to hide columns added by other plugins?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Enhanced Focus:\u003C\u002Fstrong> By hiding unnecessary columns, you can focus on the essential data that matters most to your workflow.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Improved Performance:\u003C\u002Fstrong> Reducing the number of columns can speed up the loading time of your admin list tables.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clarity and Usability:\u003C\u002Fstrong> A streamlined list table improves readability and makes it easier to manage your content.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>With \u003Cstrong>Hide Admin Columns\u003C\u002Fstrong>, you can keep the valuable functionality of various plugins while hiding their extra columns that clutter your view. This ensures you maintain a clean and efficient workspace without compromising on the features provided by your plugins.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPLv2 or later. See the \u003Ca href=\"https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\" rel=\"nofollow ugc\">License URI\u003C\u002Fa> for more information.\u003C\u002Fp>\n","Hide columns in the WordPress admin list tables for custom post types.",719,"2024-08-04T17:12:00.000Z","6.6.5","5.6",[112,19,113,114,115],"admin","hide","post-types","visibility","https:\u002F\u002Fwww.fixwp.io","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhide-admin-columns.1.0.1.zip",92,{"slug":120,"name":121,"version":122,"author":123,"author_profile":124,"description":125,"short_description":126,"active_installs":90,"downloaded":127,"rating":11,"num_ratings":11,"last_updated":128,"tested_up_to":129,"requires_at_least":130,"requires_php":23,"tags":131,"homepage":135,"download_link":136,"security_score":81,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"mimo-masonry","Mimo Masonry","1.0","mimo","https:\u002F\u002Fprofiles.wordpress.org\u002Fmimothemes\u002F","\u003Cp>This plugin adds a widget to your WordPress site called Mimo Masonry, publish this widget wherever needed and set its options, it creates a WordPress Query Loop that has Grid Layout(Isotope) and can be filtered with ajax(Isotope Filtering), it can display any Custom Post Type and has a bunch of design options and loop customizations:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>-Title: Title of the widget\u003C\u002Fli>\n\u003Cli>-Categories to show, use slugs separated by commas: Which categories to include in the loop, they can be custom post types categories\u003C\u002Fli>\n\u003Cli>-Categories to hide, use ids separated by commas: The categories to hide, here you need to use id’s\u003C\u002Fli>\n\u003Cli>-Filter taxonomyIf you need to filter the loop(ajax filter), write here wchich term you need to filter.\u003C\u002Fli>\n\u003Cli>-Offset, number: Write the number for offset in the loop, this means the number of post you need to jump from beginning.\u003C\u002Fli>\n\u003Cli>-Number of posts to show: Posts per page\u003C\u002Fli>\n\u003Cli>-Image Size to use: This will list all available image sizes in theme, so choose which you prefer\u003C\u002Fli>\n\u003Cli>-Post Type to use: This field will list all available post types in theme for you to choose one\u003C\u002Fli>\n\u003Cli>-Order: Order of loop\u003C\u002Fli>\n\u003Cli>-Order by: Order by\u003C\u002Fli>\n\u003Cli>-Columns to use: You can set here until 20 columns\u003C\u002Fli>\n\u003Cli>-Title Words, number: How many words to show in title of posts\u003C\u002Fli>\n\u003Cli>-Excerpt Words, number: How many words to show in excerpt of posts\u003C\u002Fli>\n\u003Cli>-Infinite Scroll: Choose to No, Button or Auto(the infinite scroll triggers when you scroll down the page)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin is completely compatible with SiteOrigin Page Builder Plugin.\u003C\u002Fp>\n\u003Ch3>Usage instructions\u003C\u002Fh3>\n\u003Cp>Just publish the widget wherever needed. It works great with Site Origin Panels plugin to create full layouts.\u003C\u002Fp>\n\u003Ch3>Developer instructions\u003C\u002Fh3>\n\u003Cp>Apart from the options inside widget you can manipulate the before\u002Fafter loop and articles content with this actions:\u003C\u002Fp>\n\u003Cp>do_action(‘mimo_masonry_before_content’); \u002F\u002F The beginnning of content inside each article\u003Cbr \u002F>\ndo_action(‘mimo_masonry_after_content’); \u002F\u002F The end of content inside each article\u003Cbr \u002F>\ndo_action(‘mimo_masonry_before_loop’); \u002F\u002F Out of the loop\u003Cbr \u002F>\ndo_action(‘mimo_masonry_after_loop’); \u002F\u002F Out of the loop\u003C\u002Fp>\n\u003Cp>Find plugin and issues solved at \u003Ca href=\"http:\u002F\u002Fmimo.studio\" title=\"Mimo Studio - web design and development\" rel=\"nofollow ugc\">http:\u002F\u002Fmimo.studio\u002F\u003C\u002Fa>\u003C\u002Fp>\n","Creates a Widget to display a Masonry, Infinite scroll, filterable loop of posts or whatever custom post type you have. Includes 1-20 columns layout.",2694,"2016-06-04T06:40:00.000Z","4.5.33","4.3",[19,56,132,133,134],"grid","loop","masonry","http:\u002F\u002Fmimo.media","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmimo-masonry.zip",{"attackSurface":138,"codeSignals":216,"taintFlows":246,"riskAssessment":302,"analyzedAt":310},{"hooks":139,"ajaxHandlers":190,"restRoutes":213,"shortcodes":214,"cronEvents":215,"entryPointCount":49,"unprotectedCount":31},[140,146,149,154,158,163,167,171,175,179,184,188],{"type":141,"name":142,"callback":143,"file":144,"line":145},"action","current_screen","register_columns","includes\\class-column-manager.php",9,{"type":141,"name":142,"callback":147,"file":148,"line":90},"set_screen_tabs","includes\\class-help-tab.php",{"type":141,"name":150,"callback":151,"file":152,"line":153},"init","init_services","includes\\class-plugin.php",19,{"type":141,"name":155,"callback":156,"file":152,"line":157},"admin_init","late_hooks",20,{"type":159,"name":160,"callback":161,"priority":90,"file":152,"line":162},"filter","ptcm_should_enqueue_popup_assets","insert_screen_assets",39,{"type":141,"name":164,"callback":165,"priority":90,"file":152,"line":166},"ptcm_current_screen","maybe_render_popup",40,{"type":141,"name":168,"callback":169,"file":152,"line":170},"admin_enqueue_scripts","enqueue_assets",41,{"type":141,"name":172,"callback":173,"file":152,"line":174},"in_admin_header","render_admin_header",45,{"type":141,"name":176,"callback":177,"file":152,"line":178},"admin_footer","render_popup",152,{"type":141,"name":180,"callback":181,"file":182,"line":183},"plugins_loaded","closure","post-type-column-editor.php",42,{"type":141,"name":185,"callback":186,"file":187,"line":90},"admin_menu","add_settings_page","src\\Settings\\SettingsPage.php",{"type":141,"name":155,"callback":189,"file":187,"line":71},"register_settings",[191,196,199,203,207,210],{"action":192,"nopriv":193,"callback":194,"hasNonce":193,"hasCapCheck":193,"file":195,"line":145},"ptcm_get_columns",false,"get_columns","includes\\class-ajax-handler.php",{"action":197,"nopriv":193,"callback":198,"hasNonce":193,"hasCapCheck":193,"file":195,"line":90},"ptcm_save_columns","save_columns",{"action":200,"nopriv":193,"callback":201,"hasNonce":202,"hasCapCheck":193,"file":195,"line":71},"ptcm_reload_list_table","reload_list_table",true,{"action":204,"nopriv":193,"callback":205,"hasNonce":193,"hasCapCheck":193,"file":195,"line":206},"ptcm_reset_columns","reset_columns",12,{"action":208,"nopriv":193,"callback":208,"hasNonce":202,"hasCapCheck":193,"file":195,"line":209},"ptcm_save_post_type_custom_fields",13,{"action":211,"nopriv":193,"callback":211,"hasNonce":202,"hasCapCheck":193,"file":195,"line":212},"ptcm_get_hook_sample",14,[],[],[],{"dangerousFunctions":217,"sqlUsage":218,"outputEscaping":226,"fileOperations":11,"externalRequests":11,"nonceChecks":240,"capabilityChecks":241,"bundledLibraries":242},[],{"prepared":219,"raw":220,"locations":221},4,1,[222],{"file":223,"line":224,"context":225},"includes\\class-get-columns.php",218,"$wpdb->get_col() with variable interpolation",{"escaped":227,"rawEcho":219,"locations":228},73,[229,233,236,238],{"file":230,"line":231,"context":232},"src\\Settings\\TabRenderer.php",49,"raw output",{"file":234,"line":235,"context":232},"src\\Settings\\Tabs\\Tab_General.php",69,{"file":234,"line":237,"context":232},87,{"file":234,"line":239,"context":232},101,8,2,[243],{"name":244,"version":26,"knownCves":245},"Select2",[],[247,265,273,285,294],{"entryPoint":248,"graph":249,"unsanitizedCount":11,"severity":264},"reset_columns (includes\\class-column-manager.php:168)",{"nodes":250,"edges":262},[251,256],{"id":252,"type":253,"label":254,"file":144,"line":255},"n0","source","$_POST",171,{"id":257,"type":258,"label":259,"file":144,"line":260,"wp_function":261},"n1","sink","update_option() [Settings Manipulation]",194,"update_option",[263],{"from":252,"to":257,"sanitized":202},"low",{"entryPoint":266,"graph":267,"unsanitizedCount":11,"severity":264},"\u003Cclass-column-manager> (includes\\class-column-manager.php:0)",{"nodes":268,"edges":271},[269,270],{"id":252,"type":253,"label":254,"file":144,"line":255},{"id":257,"type":258,"label":259,"file":144,"line":260,"wp_function":261},[272],{"from":252,"to":257,"sanitized":202},{"entryPoint":274,"graph":275,"unsanitizedCount":11,"severity":264},"\u003Cclass-get-columns> (includes\\class-get-columns.php:0)",{"nodes":276,"edges":283},[277,279],{"id":252,"type":253,"label":254,"file":223,"line":278},33,{"id":257,"type":258,"label":280,"file":223,"line":281,"wp_function":282},"get_col() [SQLi]",268,"get_col",[284],{"from":252,"to":257,"sanitized":202},{"entryPoint":286,"graph":287,"unsanitizedCount":11,"severity":264},"save_columns (includes\\class-save-columns.php:8)",{"nodes":288,"edges":292},[289,291],{"id":252,"type":253,"label":254,"file":290,"line":71},"includes\\class-save-columns.php",{"id":257,"type":258,"label":259,"file":290,"line":235,"wp_function":261},[293],{"from":252,"to":257,"sanitized":202},{"entryPoint":295,"graph":296,"unsanitizedCount":11,"severity":264},"\u003Cclass-save-columns> (includes\\class-save-columns.php:0)",{"nodes":297,"edges":300},[298,299],{"id":252,"type":253,"label":254,"file":290,"line":71},{"id":257,"type":258,"label":259,"file":290,"line":235,"wp_function":261},[301],{"from":252,"to":257,"sanitized":202},{"summary":303,"deductions":304},"The \"post-type-column-editor\" plugin, v1.0.5, exhibits a generally good security posture with several strengths. The plugin demonstrates strong practices regarding SQL query sanitization and output escaping, with 80% of SQL queries using prepared statements and 95% of outputs properly escaped. Furthermore, the absence of known vulnerabilities (CVEs) and critical taint analysis findings suggests a mature and well-maintained codebase. The use of nonces and capability checks on 8 and 2 entry points respectively also indicates an effort to secure the plugin's functionality.\n\nHowever, a notable concern lies in the plugin's attack surface. With a total of 6 AJAX handlers, 3 of them lack authentication checks. This presents a potential entry point for malicious actors to trigger functionalities without proper authorization. While the taint analysis did not reveal any unsanitized paths with critical or high severity, the presence of unprotected AJAX endpoints warrants careful attention and potential remediation. The bundled Select2 library, while common, could also pose a risk if it's an outdated version, though this is not explicitly stated in the provided data.\n\nIn conclusion, while the plugin benefits from a clean vulnerability history and robust SQL\u002Foutput sanitization, the unprotected AJAX handlers represent a significant weakness. Addressing these unauthenticated entry points should be the priority to further strengthen the plugin's security. The overall security is moderate, with a strong foundation but a specific area of vulnerability that could be exploited.",[305,307],{"reason":306,"points":90},"Unprotected AJAX handlers",{"reason":308,"points":309},"AJAX handlers without auth checks (3\u002F6)",5,"2026-03-17T06:34:04.725Z",{"wat":312,"direct":326},{"assetPaths":313,"generatorPatterns":323,"scriptPaths":324,"versionParams":325},[314,315,316,317,318,319,320,321,322],"\u002Fwp-content\u002Fplugins\u002Fpost-type-column-editor\u002Fassets\u002Fcss\u002Fplugin-settings.css","\u002Fwp-content\u002Fplugins\u002Fpost-type-column-editor\u002Fassets\u002Fcss\u002Fmain.css","\u002Fwp-content\u002Fplugins\u002Fpost-type-column-editor\u002Fassets\u002Fcss\u002Fselect2.min.css","\u002Fwp-content\u002Fplugins\u002Fpost-type-column-editor\u002Fassets\u002Fjs\u002Fplugins\u002Fptcm-utils.js","\u002Fwp-content\u002Fplugins\u002Fpost-type-column-editor\u002Fassets\u002Fjs\u002Fplugins\u002Fjquery.ptcmTooltip.js","\u002Fwp-content\u002Fplugins\u002Fpost-type-column-editor\u002Fassets\u002Fjs\u002Fplugins\u002Fjquery.ptcmRenderRow.js","\u002Fwp-content\u002Fplugins\u002Fpost-type-column-editor\u002Fassets\u002Fjs\u002Fplugins\u002Fjquery.ptcmColumnManager.js","\u002Fwp-content\u002Fplugins\u002Fpost-type-column-editor\u002Fassets\u002Fjs\u002Fmain.js","\u002Fwp-content\u002Fplugins\u002Fpost-type-column-editor\u002Fassets\u002Fjs\u002Fselect2.min.js",[],[317,318,319,320,321,322],[],{"cssClasses":327,"htmlComments":330,"htmlAttributes":331,"restEndpoints":340,"jsGlobals":341,"shortcodeOutput":344},[328,329],"ptcm-column-manager-wrapper","ptcm-settings-page",[],[332,333,334,335,336,337,338,339],"data-ptcm-debug","data-ptcm-nonce","data-ptcm-col-types","data-ptcm-sources","data-ptcm-fields","data-ptcm-post-type","data-ptcm-ajax-url","data-ptcm-screen-data",[],[342,343],"window.ptcmData","window.PTCM",[]]