[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fDAj0ni0nmZLkjCIr_nPN4zN-5XHFui5zLzA7EY2lGGw":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":18,"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":134,"fingerprints":503},"vote-my-post","Vote My Post","1.0","seven monks","https:\u002F\u002Fprofiles.wordpress.org\u002Fseven-monks\u002F","\u003Cp>This plugin provides one upvote( like ) and one downvote( dislike ) button with counter, to each of your posts. The site admin has option to set the position ( before or after a post ) and orientation( left or right ) of these buttons.\u003C\u002Fp>\n\u003Cp>The site admin has the option to set the voting mode per post. Each post can either be “restricted”, i.e. is votable by only a logged in registered user, or, “open”, i.e. any visitor can cast her vote for the post. For the posts in “open” mode, the site admin can set a time interval for a user to cast consecutive votes for a particular post. The logged in user can optionally be allowed to cast multiple votes for a single post, or, to vote a post only once. If she is allowed ( by the option set by the site admin ) to cast multiple votes for a particular post, she is prevented for the pre-set time interval to cast a consecutive vote.\u003C\u002Fp>\n\u003Cp>The admin interface has a complete list of all the posts that have been voted so far and she can reset the counters for either a particular post or multiple posts at a time.\u003C\u002Fp>\n\u003Cp>Other settings provide options to specify the number of posts to display per listing page, etc.\u003C\u002Fp>\n\u003Cp>If you find this plugin helpful, PLEASE RATE IT!!\u003C\u002Fp>\n","Provides up and downvote buttons to each of your posts.",10,6579,100,5,"2013-09-27T16:16:00.000Z","3.6.1","3.5.1","",[20,21,22,23,24],"dislike","down-vote","like","posts","up-vote","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fvote-my-post.1.0.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},"seven-monks",1,30,84,"2026-04-03T23:22:09.671Z",[38,56,72,93,117],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":27,"num_ratings":27,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":18,"tags":51,"homepage":18,"download_link":54,"security_score":55,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"just-likes-and-dislikes","Just Likes and Dislikes","2.8","Greg Ross","https:\u002F\u002Fprofiles.wordpress.org\u002Fgregross\u002F","\u003Cp>\u003Cstrong>Just Likes and Dislikes is a fork of the excellent \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fposts-like-dislike\u002F\" rel=\"ugc\">Post Like Dislike\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcomments-like-dislike\u002F\" rel=\"ugc\">Comment Like and Dislike\u003C\u002Fa> by \u003Ca href=\"http:\u002F\u002Fwphappycoders.com\u002F\" rel=\"nofollow ugc\">WP Happy Coders\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Just Likes and Dislikes enables like and dislike icons for posts, pages and comments. Choose between multiple predefined icon sets or use your own custom like\u002Fdislike icons, the choice is yours.\u003C\u002Fp>\n\u003Cp>Just Likes and Dislikes increases the interaction with the WordPress by enabling likes and dislikes buttons along with the count.\u003C\u002Fp>\n\u003Ch4>See full features list below:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Select position of like\u002Fdislike display; before\u002Fafter post\u002Fcomment.\u003C\u002Fli>\n\u003Cli>Disable like\u002Fdislikes on any post type.\u003C\u002Fli>\n\u003Cli>Show likes, dislikes or both.\u003C\u002Fli>\n\u003Cli>Choose which order to show likes\u002Fdislikes in.\u003C\u002Fli>\n\u003Cli>Definable hover text.\u003C\u002Fli>\n\u003Cli>Choose to display like\u002Fdislike counts of zero.\u003C\u002Fli>\n\u003Cli>Choose method to restrict users to a single like\u002Fdislike; cookies, IP, logged in users\u003C\u002Fli>\n\u003Cli>7 available pre-defined icon templates to choose from:\n\u003Cul>\n\u003Cli>Thumbs\u003C\u002Fli>\n\u003Cli>Hearts\u003C\u002Fli>\n\u003Cli>Checked\u002FCross-out\u003C\u002Fli>\n\u003Cli>Happy\u002FSad\u003C\u002Fli>\n\u003Cli>Plus\u002FMinus\u003C\u002Fli>\n\u003Cli>Up\u002FDown\u003C\u002Fli>\n\u003Cli>Fire\u002FExtinguisher\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Custom like\u002Fdislike icon support\u003C\u002Fli>\n\u003Cli>Icon color selector\u003C\u002Fli>\n\u003Cli>Count color selector\u003C\u002Fli>\n\u003Cli>NEW: Sortable like\u002Fdislike columns in post\u002Fpage admin screens (can be disabled via option)\u003C\u002Fli>\n\u003Cli>NEW: Total like\u002Fdislike counts on tags and category admin screens (unsortable due to technical limitations)\u003C\u002Fli>\n\u003Cli>NEW: Front end shortcode to generate Top 10 style tables for liked\u002Fdisliked content (comments not supported at this time).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Shortcode\u003C\u002Fh4>\n\u003Cp>[just_like_and_dislike id=post_id] or [jlad id=post_id]\u003Cbr \u002F>\nPlease replace post_id with the id of the post or remove id parameter for considering the post id as the id of global $post object\u003C\u002Fp>\n\u003Cp>[just_like_and_dislike_top_table count=10] or [jlad_top_table count=10]\u003Cbr \u002F>\nOptions available are:\u003Cbr \u002F>\n* count – Number of items to display (default 10).\u003Cbr \u002F>\n* show_likes – Display a table with the top liked posts in it (default true).\u003Cbr \u002F>\n* show_dislikes – Display a table with the top disliked posts in it (default true).\u003Cbr \u002F>\n* types – Post types to display, a comma separated list i.e. “post” or “post, page” (default “post”).\u003Cbr \u002F>\n* show_table_title – Display a title for each table in the format of “Likes for Posts”, “Dislikes for Pages”, etc. (default true).\u003Cbr \u002F>\n* show_row_numbers – Display row numbers for the table (default true).\u003C\u002Fp>\n\u003Cp>eg: [jlad_top_table count=3 types=”post, pages” show_dislikes=false show_table_title=false]\u003C\u002Fp>\n\u003Cp>  Post Title\u003Cbr \u002F>\n  👍️\u003C\u002Fp>\n\u003Cp>  1\u003Cbr \u002F>\n  Cool post\u003Cbr \u002F>\n  6\u003C\u002Fp>\n\u003Cp>  2\u003Cbr \u002F>\n  Nice post\u003Cbr \u002F>\n  3\u003C\u002Fp>\n\u003Cp>  3\u003Cbr \u002F>\n  [no title]\u003Cbr \u002F>\n  2\u003C\u002Fp>\n\u003Cp>  Total\u003Cbr \u002F>\n  11\u003C\u002Fp>\n\u003Cp>  Page Title\u003Cbr \u002F>\n  👎️\u003C\u002Fp>\n\u003Cp>  1\u003Cbr \u002F>\n  Cool page\u003Cbr \u002F>\n  8\u003C\u002Fp>\n\u003Cp>  2\u003Cbr \u002F>\n  Nice page\u003Cbr \u002F>\n  4\u003C\u002Fp>\n\u003Cp>  3\u003Cbr \u002F>\n  [no title]\u003Cbr \u002F>\n  1\u003C\u002Fp>\n\u003Cp>  Total\u003Cbr \u002F>\n  13\u003C\u002Fp>\n\u003Cp>The table has a css class of jlad_shortcode_table, so you can style it with css, for example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>.jlad_shortcode_table thead,\u003Cbr \u002F>\n.jlad_shortcode_table tfoot {\u003Cbr \u002F>\n    background-color: #000077;\u003Cbr \u002F>\n    color: #FFFFFF;\u003Cbr \u002F>\n}\u003C\u002Fp>\n\u003Cp>.jlad_shortcode_table tr:nth-child(even) {\u003Cbr \u002F>\n  background-color: #f2f2f2;\u003Cbr \u002F>\n}\u003C\u002Fp>\n\u003Cp>.jlad_shortcode_table td:last-child {\u003Cbr \u002F>\n    text-align: center;\u003Cbr \u002F>\n    width: 20%;\u003Cbr \u002F>\n}\u003C\u002Fp>\n\u003Cp>.jlad_shortcode_table tfoot td:first-child {\u003Cbr \u002F>\n    text-align: right;\u003Cbr \u002F>\n}\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Cp>Creates a table with blue background and white text header\u002Ffooter rows, zebra stripes on the post list, centers the likes\u002Fdislikes column and aligns the “Total” in the footer to the right of the column.\u003C\u002Fp>\n\u003Ch4>Custom Function\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>\u003C?php echo do_shortcode('[just_like_and_dislike id=post_id]');?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Please replace post_id with the id of the post or remove id parameter for considering the post id as the id of global $post object\u003C\u002Fp>\n","Like and dislike feature for WordPress.",20,2443,"2024-06-09T23:27:00.000Z","6.5.8","5.0",[52,20,22,53,23],"comments","pages","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjust-likes-and-dislikes.2.8.zip",92,{"slug":57,"name":58,"version":6,"author":59,"author_profile":60,"description":61,"short_description":62,"active_installs":11,"downloaded":63,"rating":27,"num_ratings":27,"last_updated":64,"tested_up_to":65,"requires_at_least":66,"requires_php":67,"tags":68,"homepage":18,"download_link":71,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"simple-like-dislike-posts","Simple Like Dislike Posts","Piyush Rawat","https:\u002F\u002Fprofiles.wordpress.org\u002Fpiyushrawat-1\u002F","\u003Cp>The plugin provides option for users to add the function to display counter automatically before or after the content as well as to place them manually inside the single.php template file\u003C\u002Fp>\n","Simple Like Dislike Posts provides user a seamless functionality to add LIKE\u002FDISLIKE counter on thier posts.",1449,"2017-11-23T18:24:00.000Z","4.9.29","4.6","5.2.4",[69,70,23],"counter","like-dislike-posts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-like-dislike-posts.zip",{"slug":73,"name":74,"version":75,"author":76,"author_profile":77,"description":78,"short_description":79,"active_installs":80,"downloaded":81,"rating":55,"num_ratings":82,"last_updated":83,"tested_up_to":84,"requires_at_least":85,"requires_php":18,"tags":86,"homepage":18,"download_link":89,"security_score":90,"vuln_count":91,"unpatched_count":27,"last_vuln_date":92,"fetched_at":29},"comments-like-dislike","Comments Like Dislike","1.2.4","Happy Coders","https:\u002F\u002Fprofiles.wordpress.org\u002Fhappy-coders\u002F","\u003Cp>\u003Cstrong>Comments Like Dislike\u003C\u002Fstrong> is the \u003Cstrong>Free\u003C\u002Fstrong> WordPress Plugin to enable Like and Dislike Icons for default WordPress Comments. Choose Thumbs Up or Thumbs Down, Smiley or Frown, Right or Wrong icons or your own custom like dislike icons, choice is yours.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Comments Like Dislike\u003C\u002Fstrong> increases the interaction with the WordPress native comments by enabling likes and dislikes buttons along with the count.\u003C\u002Fp>\n\u003Ch4>Comments Like Dislike features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Status\n\u003Cul>\n\u003Cli>Enable or Disable Comments Like Dislike for comments\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Like Dislike Position\n\u003Cul>\n\u003Cli>After Comment\u003C\u002Fli>\n\u003Cli>Before Comment\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Like Dislike Display\n\u003Cul>\n\u003Cli>Display Both Like and Dislike\u003C\u002Fli>\n\u003Cli>Display Like Only\u003C\u002Fli>\n\u003Cli>Display Dislike Only\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Like Dislike Restriction\n\u003Cul>\n\u003Cli>Cookie Restriction\u003C\u002Fli>\n\u003Cli>IP Restriction\u003C\u002Fli>\n\u003Cli>No Restriction\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Like Dislike Order\n\u003Cul>\n\u003Cli>Like Dislike\u003C\u002Fli>\n\u003Cli>Dislike Like \u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>4 Pre Available Icon Templates\n\u003Cul>\n\u003Cli>Thumbs Up Thumbs Down\u003C\u002Fli>\n\u003Cli>Heart or Heart Beat\u003C\u002Fli>\n\u003Cli>Right or Wrong\u003C\u002Fli>\n\u003Cli>Smiley or Frown\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Custom Like Dislike Icon Upload feature\u003C\u002Fli>\n\u003Cli>Icon Color Configuration\u003C\u002Fli>\n\u003Cli>Count Color Configuration\u003C\u002Fli>\n\u003Cli>Custom function to display like dislike icons\u003C\u002Fli>\n\u003Cli>Comment Like Dislike edit from comment edit section\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Comments Like Dislike Custom Function\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>\u003C?php comments_like_dislike($comment_id);?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>$comment_id is the ID of the comment for which you want to display the like dislike button.\u003C\u002Fp>\n","Like Dislike for WordPress Comments",9000,134604,38,"2025-12-08T17:11:00.000Z","6.9.4","5.5",[87,52,20,22,88],"comment","rating","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcomments-like-dislike.1.2.4.zip",99,3,"2024-02-12 00:00:00",{"slug":94,"name":95,"version":96,"author":97,"author_profile":98,"description":99,"short_description":100,"active_installs":101,"downloaded":102,"rating":103,"num_ratings":104,"last_updated":105,"tested_up_to":49,"requires_at_least":106,"requires_php":85,"tags":107,"homepage":113,"download_link":114,"security_score":115,"vuln_count":33,"unpatched_count":27,"last_vuln_date":116,"fetched_at":29},"booster-extension","Booster Extension","1.2.2","themeinwp","https:\u002F\u002Fprofiles.wordpress.org\u002Fthemeinwp\u002F","\u003Cp>Booster Extension is a free WordPress plugin that supercharges your site with awesome powerful features. There’re numerous plugins in the official WordPress repository that promises to provide the features that we offer, however if you install them all, there’s inconsistency in their backend and frontend styles and possible plugin conflicts. That’s why we’ve created Booster Extension, adding all the essentials components for every WordPress blog or magazine.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Social share with share count\u003C\u002Fstrong>\u003Cbr \u002F>\nSharing buttons increase traffic and engagement by helping readers share your posts and pages to their friends on social media. Booster Extension enables your website users to share the content over Facebook, Twitter, LinkedIn, Pinterest and Email. This is the Simplest and Smoothest Social Sharing plugin with an awesome visual appearance.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Calculate and Display Read Time\u003C\u002Fstrong>\u003Cbr \u002F>\nDo you want to display estimated post reading time in your WordPress blog posts? Booster Extension let’s you easily add an estimated reading time to your WordPress posts. An estimated reading time encourages users to read a blog post instead of clicking away.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Reaction Buttons and Feedback Emoji\u003C\u002Fstrong>\u003Cbr \u002F>\nBooster Extension helps you to collect user feedback using the most spoken language in the world: the emoji. Increase your audience engagement in a fun way for your users.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Author Box with Social Profiles\u003C\u002Fstrong>\u003Cbr \u002F>\nBooster Extension adds a responsive author box at the end of your posts, showing the author name, author gravatar and author description. It also adds over 30 social profile fields on WordPress user profile screen, allowing to display the author social icons.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Like\u002FDislike Post\u003C\u002Fstrong>\u003Cbr \u002F>\nBooster Extension increases the interaction with the WordPress post by enabling likes and dislikes buttons along with the count. You can choose either Thumbs Up\u002FThumbs Down or Smiley\u002FFrown.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>License: GPLv2\nLicense URI: http:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Booster Extension is a free WordPress plugin that supercharges your site with awesome powerful features. There’re numerous plugins in the official Wor &hellip;",8000,182275,88,7,"2024-04-26T04:40:00.000Z","4.5",[108,109,110,111,112],"post-like-and-dislike","post-reactions","read-time","share-count","social-share","https:\u002F\u002Fwww.themeinwp.com\u002Fbooster-extension\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbooster-extension.1.2.2.zip",91,"2024-04-29 00:00:00",{"slug":118,"name":119,"version":120,"author":76,"author_profile":77,"description":121,"short_description":122,"active_installs":123,"downloaded":124,"rating":125,"num_ratings":126,"last_updated":127,"tested_up_to":84,"requires_at_least":50,"requires_php":18,"tags":128,"homepage":18,"download_link":132,"security_score":13,"vuln_count":33,"unpatched_count":27,"last_vuln_date":133,"fetched_at":29},"posts-like-dislike","Posts Like Dislike","1.1.6","\u003Cp>\u003Cstrong>Posts Like Dislike\u003C\u002Fstrong> is the \u003Cstrong>Free\u003C\u002Fstrong> WordPress Plugin to enable Like and Dislike Icons for \u003Cstrong>default WordPress Posts\u003C\u002Fstrong> or \u003Cstrong>any other post types\u003C\u002Fstrong>. Choose Thumbs Up or Thumbs Down, Smiley or Frown, Right or Wrong icons or your own custom like dislike icons, choice is yours.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Posts Like Dislike\u003C\u002Fstrong> increases the interaction with the WordPress posts\u002Fpost types by enabling likes and dislikes buttons along with the count.\u003C\u002Fp>\n\u003Ch4>Posts Like Dislike Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Status\n\u003Cul>\n\u003Cli>Enable or Disable Posts Like Dislike for posts\u002Fpage or any other post types\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Like Dislike Position\n\u003Cul>\n\u003Cli>After Post\u003C\u002Fli>\n\u003Cli>Before Post\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Like Dislike Display\n\u003Cul>\n\u003Cli>Display Both Like and Dislike\u003C\u002Fli>\n\u003Cli>Display Like Only\u003C\u002Fli>\n\u003Cli>Display Dislike Only\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Like Dislike Restriction\n\u003Cul>\n\u003Cli>Cookie Restriction\u003C\u002Fli>\n\u003Cli>IP Restriction\u003C\u002Fli>\n\u003Cli>No Restriction\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Like Dislike Order\n\u003Cul>\n\u003Cli>Like Dislike\u003C\u002Fli>\n\u003Cli>Dislike Like \u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>4 Pre Available Icon Templates\n\u003Cul>\n\u003Cli>Thumbs Up Thumbs Down\u003C\u002Fli>\n\u003Cli>Heart or Heart Beat\u003C\u002Fli>\n\u003Cli>Right or Wrong\u003C\u002Fli>\n\u003Cli>Smiley or Frown\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Custom Like Dislike Icon Upload feature\u003C\u002Fli>\n\u003Cli>Icon Color Configuration\u003C\u002Fli>\n\u003Cli>Count Color Configuration\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Shortcode\u003C\u002Fh4>\n\u003Cp>[posts_like_dislike id=post_id]\u003Cbr \u002F>\nPlease replace post_id with the id of the post or remove id parameter for considering the post id as the id of global $post object\u003C\u002Fp>\n\u003Ch4>Custom Function\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>\u003C?php echo do_shortcode('[posts_like_dislike id=post_id]');?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Please replace post_id with the id of the post or remove id parameter for considering the post id as the id of global $post object\u003C\u002Fp>\n\u003Cp>If you are using in your single.php template file then you can use below code\n    \u003C\u002Fp>\n","Like Dislike for WordPress Posts | WordPress Page | Custom Post Types",6000,103434,86,22,"2025-12-08T17:19:00.000Z",[20,22,129,130,131],"like-dislike","page","post","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fposts-like-dislike.1.1.6.zip","2023-08-21 00:00:00",{"attackSurface":135,"codeSignals":201,"taintFlows":288,"riskAssessment":490,"analyzedAt":502},{"hooks":136,"ajaxHandlers":171,"restRoutes":196,"shortcodes":197,"cronEvents":198,"entryPointCount":199,"unprotectedCount":200},[137,142,146,150,153,156,158,163,167],{"type":138,"name":139,"callback":140,"file":141,"line":13},"action","admin_init","vmp_activate","vote-my-post.php",{"type":138,"name":143,"callback":144,"file":141,"line":145},"admin_menu","vmp_add_plugin_menu_tab",119,{"type":138,"name":147,"callback":148,"file":141,"line":149},"admin_enqueue_scripts","vmp_add_style",172,{"type":138,"name":151,"callback":148,"file":141,"line":152},"wp_enqueue_scripts",173,{"type":138,"name":151,"callback":154,"file":141,"line":155},"vmp_add_scripts",187,{"type":138,"name":147,"callback":154,"file":141,"line":157},188,{"type":159,"name":160,"callback":161,"file":141,"line":162},"filter","the_content","vmp_add_voting_links",639,{"type":138,"name":164,"callback":165,"file":141,"line":166},"admin_action_reset_multiple_post_vote_counters_092113","vmp_reset_multiple_post_vote_counters",748,{"type":138,"name":168,"callback":169,"file":141,"line":170},"admin_action_set_plugin_options_092113","vmp_add_user_settings",843,[172,178,182,186,190,192],{"action":173,"nopriv":174,"callback":175,"hasNonce":176,"hasCapCheck":174,"file":141,"line":177},"set_post_voting_link_position_and_orientation_090713",false,"vmp_set_post_voting_link_style",true,258,{"action":179,"nopriv":174,"callback":180,"hasNonce":174,"hasCapCheck":174,"file":141,"line":181},"set_this_post_voting_mode_090813","vmp_set_single_post_voting_mode",326,{"action":183,"nopriv":174,"callback":184,"hasNonce":176,"hasCapCheck":174,"file":141,"line":185},"set_multiple_post_voting_mode_090813","vmp_set_multiple_post_voting_mode",381,{"action":187,"nopriv":174,"callback":188,"hasNonce":174,"hasCapCheck":174,"file":141,"line":189},"count_vote_090813","vmp_count_vote",537,{"action":187,"nopriv":176,"callback":188,"hasNonce":174,"hasCapCheck":174,"file":141,"line":191},538,{"action":193,"nopriv":174,"callback":194,"hasNonce":174,"hasCapCheck":174,"file":141,"line":195},"reset_this_post_vote_counter_092113","vmp_reset_selected_post_vote_counter",692,[],[],[],6,4,{"dangerousFunctions":202,"sqlUsage":203,"outputEscaping":206,"fileOperations":27,"externalRequests":27,"nonceChecks":200,"capabilityChecks":200,"bundledLibraries":287},[],{"prepared":204,"raw":27,"locations":205},52,[],{"escaped":200,"rawEcho":207,"locations":208},41,[209,212,214,216,218,220,222,224,226,229,230,231,233,235,237,239,240,242,243,246,248,249,251,253,255,257,259,261,263,265,266,267,269,271,273,275,277,279,281,283,285],{"file":210,"line":14,"context":211},"vmp-management-panel.php","raw output",{"file":210,"line":213,"context":211},23,{"file":210,"line":215,"context":211},62,{"file":210,"line":217,"context":211},65,{"file":210,"line":219,"context":211},66,{"file":210,"line":221,"context":211},68,{"file":210,"line":223,"context":211},69,{"file":210,"line":225,"context":211},70,{"file":227,"line":228,"context":211},"vmp-set-post-vote-mode-panel.php",49,{"file":227,"line":223,"context":211},{"file":227,"line":225,"context":211},{"file":227,"line":232,"context":211},72,{"file":227,"line":234,"context":211},73,{"file":227,"line":236,"context":211},74,{"file":227,"line":238,"context":211},78,{"file":227,"line":238,"context":211},{"file":227,"line":241,"context":211},79,{"file":227,"line":241,"context":211},{"file":244,"line":245,"context":211},"vmp-set-post-vote-style-panel.php",44,{"file":244,"line":247,"context":211},48,{"file":244,"line":228,"context":211},{"file":244,"line":250,"context":211},55,{"file":244,"line":252,"context":211},56,{"file":254,"line":14,"context":211},"vmp-settings-panel.php",{"file":254,"line":256,"context":211},26,{"file":254,"line":258,"context":211},37,{"file":254,"line":260,"context":211},40,{"file":254,"line":262,"context":211},47,{"file":254,"line":264,"context":211},60,{"file":254,"line":219,"context":211},{"file":254,"line":232,"context":211},{"file":141,"line":268,"context":211},254,{"file":141,"line":270,"context":211},322,{"file":141,"line":272,"context":211},377,{"file":141,"line":274,"context":211},533,{"file":141,"line":276,"context":211},688,{"file":141,"line":278,"context":211},923,{"file":141,"line":280,"context":211},926,{"file":141,"line":282,"context":211},930,{"file":141,"line":284,"context":211},934,{"file":141,"line":286,"context":211},937,[],[289,306,320,339,362,377,394,419,437],{"entryPoint":290,"graph":291,"unsanitizedCount":91,"severity":305},"vmp_display_page_links (vote-my-post.php:888)",{"nodes":292,"edges":303},[293,298],{"id":294,"type":295,"label":296,"file":141,"line":297},"n0","source","$_REQUEST (x3)",889,{"id":299,"type":300,"label":301,"file":141,"line":280,"wp_function":302},"n1","sink","echo() [XSS]","echo",[304],{"from":294,"to":299,"sanitized":174},"medium",{"entryPoint":307,"graph":308,"unsanitizedCount":27,"severity":319},"vmp_set_post_voting_link_style (vote-my-post.php:213)",{"nodes":309,"edges":317},[310,313],{"id":294,"type":295,"label":311,"file":141,"line":312},"$_REQUEST",243,{"id":299,"type":300,"label":314,"file":141,"line":315,"wp_function":316},"query() [SQLi]",245,"query",[318],{"from":294,"to":299,"sanitized":176},"low",{"entryPoint":321,"graph":322,"unsanitizedCount":27,"severity":319},"vmp_set_multiple_post_voting_mode (vote-my-post.php:331)",{"nodes":323,"edges":336},[324,326,330,333],{"id":294,"type":295,"label":311,"file":141,"line":325},343,{"id":299,"type":300,"label":327,"file":141,"line":328,"wp_function":329},"get_results() [SQLi]",350,"get_results",{"id":331,"type":295,"label":311,"file":141,"line":332},"n2",342,{"id":334,"type":300,"label":314,"file":141,"line":335,"wp_function":316},"n3",359,[337,338],{"from":294,"to":299,"sanitized":176},{"from":331,"to":334,"sanitized":176},{"entryPoint":340,"graph":341,"unsanitizedCount":27,"severity":319},"vmp_reset_multiple_post_vote_counters (vote-my-post.php:697)",{"nodes":342,"edges":358},[343,345,347,348,350,354],{"id":294,"type":295,"label":311,"file":141,"line":344},711,{"id":299,"type":300,"label":327,"file":141,"line":346,"wp_function":329},720,{"id":331,"type":295,"label":311,"file":141,"line":344},{"id":334,"type":300,"label":314,"file":141,"line":349,"wp_function":316},724,{"id":351,"type":295,"label":352,"file":141,"line":353},"n4","$_SERVER['HTTP_REFERER']",744,{"id":355,"type":300,"label":356,"file":141,"line":353,"wp_function":357},"n5","wp_redirect() [Open Redirect]","wp_redirect",[359,360,361],{"from":294,"to":299,"sanitized":176},{"from":331,"to":334,"sanitized":176},{"from":351,"to":355,"sanitized":176},{"entryPoint":363,"graph":364,"unsanitizedCount":27,"severity":319},"vmp_add_user_settings (vote-my-post.php:785)",{"nodes":365,"edges":374},[366,369,371,373],{"id":294,"type":295,"label":367,"file":141,"line":368},"$_REQUEST (x2)",794,{"id":299,"type":300,"label":314,"file":141,"line":370,"wp_function":316},823,{"id":331,"type":295,"label":352,"file":141,"line":372},839,{"id":334,"type":300,"label":356,"file":141,"line":372,"wp_function":357},[375,376],{"from":294,"to":299,"sanitized":176},{"from":331,"to":334,"sanitized":176},{"entryPoint":378,"graph":379,"unsanitizedCount":392,"severity":393},"vmp_set_single_post_voting_mode (vote-my-post.php:293)",{"nodes":380,"edges":389},[381,383,385,387],{"id":294,"type":295,"label":311,"file":141,"line":382},303,{"id":299,"type":300,"label":327,"file":141,"line":384,"wp_function":329},304,{"id":331,"type":295,"label":311,"file":141,"line":386},311,{"id":334,"type":300,"label":314,"file":141,"line":388,"wp_function":316},313,[390,391],{"from":294,"to":299,"sanitized":174},{"from":331,"to":334,"sanitized":174},2,"high",{"entryPoint":395,"graph":396,"unsanitizedCount":14,"severity":393},"vmp_count_vote (vote-my-post.php:414)",{"nodes":397,"edges":414},[398,401,403,404,406,408,411],{"id":294,"type":295,"label":399,"file":141,"line":400},"$_REQUEST (x5)",421,{"id":299,"type":300,"label":327,"file":141,"line":402,"wp_function":329},426,{"id":331,"type":295,"label":311,"file":141,"line":400},{"id":334,"type":300,"label":314,"file":141,"line":405,"wp_function":316},480,{"id":351,"type":295,"label":296,"file":141,"line":407},449,{"id":355,"type":409,"label":410,"file":141,"line":407},"transform","→ vmp_record_vote()",{"id":412,"type":300,"label":314,"file":141,"line":413,"wp_function":316},"n6",569,[415,416,417,418],{"from":294,"to":299,"sanitized":174},{"from":331,"to":334,"sanitized":176},{"from":351,"to":355,"sanitized":174},{"from":355,"to":412,"sanitized":176},{"entryPoint":420,"graph":421,"unsanitizedCount":91,"severity":393},"vmp_reset_selected_post_vote_counter (vote-my-post.php:644)",{"nodes":422,"edges":433},[423,425,427,428,430,431],{"id":294,"type":295,"label":311,"file":141,"line":424},647,{"id":299,"type":300,"label":314,"file":141,"line":426,"wp_function":316},650,{"id":331,"type":295,"label":367,"file":141,"line":424},{"id":334,"type":300,"label":327,"file":141,"line":429,"wp_function":329},653,{"id":351,"type":295,"label":311,"file":141,"line":424},{"id":355,"type":300,"label":314,"file":141,"line":432,"wp_function":316},657,[434,435,436],{"from":294,"to":299,"sanitized":176},{"from":331,"to":334,"sanitized":174},{"from":351,"to":355,"sanitized":174},{"entryPoint":438,"graph":439,"unsanitizedCount":200,"severity":393},"\u003Cvote-my-post> (vote-my-post.php:0)",{"nodes":440,"edges":479},[441,443,444,446,448,450,451,453,455,458,461,464,467,470,473,475,477],{"id":294,"type":295,"label":442,"file":141,"line":312},"$_REQUEST (x12)",{"id":299,"type":300,"label":314,"file":141,"line":315,"wp_function":316},{"id":331,"type":295,"label":445,"file":141,"line":312},"$_REQUEST (x20)",{"id":334,"type":300,"label":327,"file":141,"line":447,"wp_function":329},281,{"id":351,"type":295,"label":449,"file":141,"line":353},"$_SERVER['HTTP_REFERER'] (x2)",{"id":355,"type":300,"label":356,"file":141,"line":353,"wp_function":357},{"id":412,"type":295,"label":452,"file":141,"line":297},"$_REQUEST (x4)",{"id":454,"type":300,"label":301,"file":141,"line":280,"wp_function":302},"n7",{"id":456,"type":295,"label":367,"file":141,"line":457},"n8",268,{"id":459,"type":409,"label":460,"file":141,"line":457},"n9","→ vmp_get_total_page_links()",{"id":462,"type":300,"label":327,"file":141,"line":463,"wp_function":329},"n10",865,{"id":465,"type":295,"label":367,"file":141,"line":466},"n11",269,{"id":468,"type":409,"label":469,"file":141,"line":466},"n12","→ vmp_paginate()",{"id":471,"type":300,"label":327,"file":141,"line":472,"wp_function":329},"n13",883,{"id":474,"type":295,"label":296,"file":141,"line":407},"n14",{"id":476,"type":409,"label":410,"file":141,"line":407},"n15",{"id":478,"type":300,"label":314,"file":141,"line":413,"wp_function":316},"n16",[480,481,482,483,484,485,486,487,488,489],{"from":294,"to":299,"sanitized":176},{"from":331,"to":334,"sanitized":176},{"from":351,"to":355,"sanitized":176},{"from":412,"to":454,"sanitized":176},{"from":456,"to":459,"sanitized":174},{"from":459,"to":462,"sanitized":174},{"from":465,"to":468,"sanitized":174},{"from":468,"to":471,"sanitized":174},{"from":474,"to":476,"sanitized":174},{"from":476,"to":478,"sanitized":176},{"summary":491,"deductions":492},"The \"vote-my-post\" v1.0 plugin presents a mixed security posture.  While it demonstrates good practices by exclusively using prepared statements for SQL queries and having no recorded vulnerabilities or external HTTP requests, significant concerns arise from its attack surface and taint analysis.  The plugin exposes six AJAX handlers, with a worrying four lacking any authentication or capability checks, creating a substantial entry point for unauthorized actions.  Furthermore, taint analysis reveals four high-severity flows with unsanitized paths, indicating potential for data manipulation or injection vulnerabilities that could be exploited through these unprotected AJAX endpoints.  The absence of any historical vulnerabilities, while positive, might also be a cause for caution, suggesting a lack of past security scrutiny or a superficial analysis of the code.\n\nOverall, the plugin has strengths in its database interaction and lack of external dependencies. However, the numerous unprotected AJAX endpoints and high-severity unsanitized paths are critical security weaknesses.  The plugin's current state suggests an urgent need for security hardening, particularly around its AJAX handlers, to mitigate the risk of exploitation and ensure the integrity of the WordPress site. Without addressing these issues, the plugin poses a significant security risk despite its other positive attributes.",[493,495,498,500],{"reason":494,"points":11},"Unprotected AJAX handlers",{"reason":496,"points":497},"High severity unsanitized paths",12,{"reason":499,"points":14},"Low output escaping coverage",{"reason":501,"points":91},"Number of AJAX entry points","2026-03-16T23:43:03.566Z",{"wat":504,"direct":514},{"assetPaths":505,"generatorPatterns":509,"scriptPaths":510,"versionParams":511},[506,507,508],"\u002Fwp-content\u002Fplugins\u002Fvote-my-post\u002Fimages\u002Fvmp-icon.gif","\u002Fwp-content\u002Fplugins\u002Fvote-my-post\u002Fcss\u002Fvmp-style.css","\u002Fwp-content\u002Fplugins\u002Fvote-my-post\u002Fjs\u002Fall-scripts.js",[],[508],[512,513],"vote-my-post\u002Fcss\u002Fvmp-style.css?ver=","vote-my-post\u002Fjs\u002Fall-scripts.js?ver=",{"cssClasses":515,"htmlComments":516,"htmlAttributes":517,"restEndpoints":522,"jsGlobals":523,"shortcodeOutput":525},[],[],[518,519,520,521],"id=\"add-vmp-menu-tab\"","id=\"add-vmp-settings-menu-tab\"","id=\"add-vmp-post-vote-mode-menu-tab\"","id=\"add-vmp-post-vote-style-menu-tab\"",[],[524],"ajax_object",[]]