[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fFaXthOpZqRj1bisbV22ox5RE6RK1j2LviRlxoludkcg":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":15,"tags":18,"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":134,"fingerprints":807},"posts-per-page-customizer","Posts Per Page Customizer","1.0.0","FRESHFACE","https:\u002F\u002Fprofiles.wordpress.org\u002Ffreshface\u002F","\u003Cp>Posts Per Page customizer allows you to carefully declare how many posts per page you want to show, and where you want to show them using\u003Cbr \u002F>\nour Conditional Logic. It also allows you to filter posts, order them by comments count, date, random, and other possibilities.\u003C\u002Fp>\n","Powerful tool to tweak your existing loops. Set posts per page, filter posts, order them, hide them, apply Conditional Logic, etc.",20,2703,60,2,"","4.3.34","4.0.0",[19,20,21],"change-loop","customize-loop","posts-per-page","http:\u002F\u002Ffreshface.net","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fposts-per-page-customizer.zip",100,0,null,"2026-03-15T10:48:56.248Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":31,"avg_security_score":32,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"freshface",1020,82,30,81,"2026-04-04T06:48:48.855Z",[37,57,78,99,116],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":25,"num_ratings":25,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":15,"tags":50,"homepage":53,"download_link":54,"security_score":55,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":56},"advanced-posts-per-page","Advanced Posts\u002FPage","1.0","chrisguitarguy","https:\u002F\u002Fprofiles.wordpress.org\u002Fchrisguitarguy\u002F","\u003Cp>Advanced Posts per Page gives you fined grained control over how many of your posts appear on each of your various WordPress archive pages.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Blog pages show at most x posts is not the only per page setting anymore.\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Fine grained control of how many of your posts appear on each of the various WordPress archive pages.",4000,4715,"2012-07-18T01:35:00.000Z","3.5.2","3.4",[51,52,21],"archive","archives","https:\u002F\u002Fgithub.com\u002Fchrisguitarguy\u002FAdvanced-Posts-Page","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadvanced-posts-per-page.1.0.zip",85,"2026-03-15T15:16:48.613Z",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":65,"downloaded":66,"rating":24,"num_ratings":67,"last_updated":68,"tested_up_to":69,"requires_at_least":70,"requires_php":71,"tags":72,"homepage":76,"download_link":77,"security_score":55,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":56},"pppp","Powerful Posts Per Page (PPPP)","1.1.0","Toro_Unit (Hiroshi Urabe)","https:\u002F\u002Fprofiles.wordpress.org\u002Ftoro_unit\u002F","\u003Cp>Simple Customization posts per page for your sites.\u003C\u002Fp>\n\u003Cp>You can change posts per page by taxonomy or category or tag or custom post type.\u003C\u002Fp>\n\u003Ch4>Available Setting\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Custom Post Type\u003C\u002Fli>\n\u003Cli>Custom Taxonomy\u003C\u002Fli>\n\u003Cli>Category\u003C\u002Fli>\n\u003Cli>Tag\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin use \u003Ccode>pre_get_posts\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftorounit\u002Fpppp\" rel=\"nofollow ugc\">This Plugin published on GitHub.\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Donation: Please send Amazon Gift to donate[at]torounit.com.\u003C\u002Fp>\n\u003Ch4>Translators\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Japanese(ja) – \u003Ca href=\"https:\u002F\u002Fwww.torounit.com\u002F\" rel=\"nofollow ugc\">Toro_Unit\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Posts per page for custom post types and taxonomies.",1000,9439,1,"2019-12-03T07:09:00.000Z","5.3.21","4.3","5.3",[73,74,21,75],"cms","post-type","taxonomy","https:\u002F\u002Fgithub.com\u002Ftorounit\u002Fpppp","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpppp.1.1.0.zip",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":86,"downloaded":87,"rating":88,"num_ratings":89,"last_updated":90,"tested_up_to":91,"requires_at_least":92,"requires_php":15,"tags":93,"homepage":97,"download_link":98,"security_score":55,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":56},"custom-posts-per-page","Custom Posts Per Page","1.7.1","Jeremy Felt","https:\u002F\u002Fprofiles.wordpress.org\u002Fjeremyfelt\u002F","\u003Cp>Custom Posts Per Page allows you to specify how many posts are displayed per page depending on your current view. Once settings are changed, the \u003Cem>Blog pages show at most\u003C\u002Fem> setting in the \u003Cem>Reading\u003C\u002Fem> menu will be ignored.\u003C\u002Fp>\n\u003Cp>Settings are available for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Home (Index) Page\n\u003Cul>\n\u003Cli>As long as view is set to blog posts, not static page.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Category Pages\u003C\u002Fli>\n\u003Cli>Tag Pages\u003C\u002Fli>\n\u003Cli>Author Pages\u003C\u002Fli>\n\u003Cli>Archive Pages\u003C\u002Fli>\n\u003Cli>Search Pages\u003C\u002Fli>\n\u003Cli>Default Page (\u003Cem>Any page not covered above.\u003C\u002Fem>)\u003C\u002Fli>\n\u003Cli>Custom Post Type archive pages\n\u003Cul>\n\u003Cli>All Custom Post Types are detected automatically.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Each of the above settings can have a different value for the first page displayed \u003Cstrong>and\u003C\u002Fstrong> subsequent paged views.\u003C\u002Fp>\n\u003Cp>Custom Posts Per Page makes it easy to manage exactly how your content is displayed to your readers, especially when different views have different layouts, rather than relying on the single setting in the Reading menu or having to hard code options in your custom theme.\u003C\u002Fp>\n","Custom Posts Per Page provides a settings page in your WordPress admin that allows you to specify how many posts are displayed for different views.",900,37378,96,12,"2014-12-11T19:54:00.000Z","4.1.42","4.0",[94,95,52,21,96],"admin","administration","settings","https:\u002F\u002Fjeremyfelt.com\u002Fwordpress\u002Fplugins\u002Fcustom-posts-per-page\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-posts-per-page.zip",{"slug":100,"name":101,"version":102,"author":103,"author_profile":104,"description":105,"short_description":106,"active_installs":107,"downloaded":108,"rating":25,"num_ratings":25,"last_updated":109,"tested_up_to":110,"requires_at_least":70,"requires_php":111,"tags":112,"homepage":113,"download_link":114,"security_score":115,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":56},"custom-posts-per-page-reloaded","Custom Posts Per Page Reloaded","2.0.0","WPZOOM","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpzoom\u002F","\u003Cp>Custom Posts Per Page Reloaded allows you to specify how many posts are displayed per page depending on your current view. Once settings are changed, the \u003Cem>Blog pages show at most\u003C\u002Fem> setting in the \u003Cem>Reading\u003C\u002Fem> menu will be ignored.\u003C\u002Fp>\n\u003Cp>Settings are available for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Home (Index) Page\n\u003Cul>\n\u003Cli>As long as view is set to blog posts, not static page.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Category Pages\u003C\u002Fli>\n\u003Cli>Tag Pages\u003C\u002Fli>\n\u003Cli>Author Pages\u003C\u002Fli>\n\u003Cli>Archive Pages\u003C\u002Fli>\n\u003Cli>Search Pages\u003C\u002Fli>\n\u003Cli>Default Page (\u003Cem>Any page not covered above.\u003C\u002Fem>)\u003C\u002Fli>\n\u003Cli>Custom Post Type archive pages\n\u003Cul>\n\u003Cli>All Custom Post Types are detected automatically.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Each of the above settings can have a different value for the first page displayed \u003Cstrong>and\u003C\u002Fstrong> subsequent paged views.\u003C\u002Fp>\n\u003Cp>Custom Posts Per Page makes it easy to manage exactly how your content is displayed to your readers, especially when different views have different layouts, rather than relying on the single setting in the Reading menu or having to hard code options in your custom theme.\u003C\u002Fp>\n\u003Cp>This is a fork (an updated clone) of \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcustom-posts-per-page\u002F\" rel=\"ugc\">Custom Posts Per Page\u003C\u002Fa> by \u003Ca href=\"https:\u002F\u002Fjeremyfelt.com\u002F\" rel=\"nofollow ugc\">Jeremy Felt\u003C\u002Fa>.\u003C\u002Fp>\n","Custom Posts Per Page Reloaded provides a settings page in your WordPress admin that allows you to specify how many posts are displayed for different  &hellip;",700,10286,"2024-07-17T13:42:00.000Z","6.6.5","7.4",[94,95,52,21,96],"https:\u002F\u002Fwpzoom.com\u002Fplugins\u002Fcustom-posts-per-page-reloaded\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-posts-per-page-reloaded.zip",92,{"slug":117,"name":118,"version":40,"author":119,"author_profile":120,"description":121,"short_description":122,"active_installs":123,"downloaded":124,"rating":25,"num_ratings":25,"last_updated":125,"tested_up_to":126,"requires_at_least":127,"requires_php":15,"tags":128,"homepage":132,"download_link":133,"security_score":55,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":56},"simple-custom-posts-per-page","Simple Custom Posts per Page","Jabawack","https:\u002F\u002Fprofiles.wordpress.org\u002Fjabawack\u002F","\u003Cp>Simple Custom Posts per Page (SCPP) allows to configure the number of posts displayed for every custom post registered in WordPress.\u003C\u002Fp>\n\u003Cp>See \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fsimple-custom-posts-per-page\u002Fscreenshots\u002F\" rel=\"ugc\">Screenshots\u003C\u002Fa> to known why it is called “Simple”.\u003C\u002Fp>\n\u003Cp>In your \u003Cem>Readme\u003C\u002Fem> page in \u003Cem>Setting\u003C\u002Fem> tab of WordPress, it adds an option for every post type.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Disable Plugin in Template\u003C\u002Fstrong>:\u003Cbr \u002F>\nYou can disable plugin filters in your template whenever you want. Maybe you need a query with a different number of custom posts per page for a specific post type.\u003Cbr \u002F>\nUsing this code before your query, the filter plugin will be disabled for a specific post type:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php $GLOBALS['ado_cspp_disable']=\"YOUR_TYPE\"; ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>With this code, you can use your personalized query for your loop.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>More\u003C\u002Fstrong>:\u003Cbr \u002F>\nYou can find more informations in the official \u003Ca href=\"http:\u002F\u002Fwww.adostudio.it\u002Fblog\u002Fsimple-custom-posts-per-page-397\u002F\" rel=\"nofollow ugc\">Post\u003C\u002Fa> on my Blog.\u003C\u002Fp>\n","This plugin allows to configure the number of posts displayed for every custom post registered.",50,4014,"2012-02-11T14:31:00.000Z","3.1.4","2.7",[129,130,131,74,21],"custom-posts","pages","pagination","http:\u002F\u002Fwww.adostudio.it\u002Fblog\u002Fsimple-custom-posts-per-page-397\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-custom-posts-per-page.1.0.zip",{"attackSurface":135,"codeSignals":337,"taintFlows":790,"riskAssessment":791,"analyzedAt":806},{"hooks":136,"ajaxHandlers":318,"restRoutes":328,"shortcodes":329,"cronEvents":334,"entryPointCount":335,"unprotectedCount":336},[137,143,147,152,156,160,164,168,172,177,178,180,183,186,189,192,195,198,201,205,208,212,217,222,226,230,234,238,243,246,249,254,257,259,262,265,269,274,277,281,286,290,294,298,302,305,307,311,315],{"type":138,"name":139,"callback":140,"file":141,"line":142},"action","pre_get_posts","actionPreGetPosts","bootstrap\\pluginClass.php",26,{"type":138,"name":144,"callback":145,"file":141,"line":146},"posts_where","actionPostsWhere",27,{"type":138,"name":148,"callback":149,"file":150,"line":151},"admin_init","actionSaveScreen","fresh-framework\\framework\\adminScreens\\class.ffAdminScreenManager.php",54,{"type":138,"name":153,"callback":154,"file":155,"line":33},"add_meta_boxes","actAddMetaBoxes","fresh-framework\\framework\\adminScreens\\metaBoxes\\class.ffMetaBoxManager.php",{"type":138,"name":157,"callback":158,"file":155,"line":159},"save_post","actSavePost",31,{"type":138,"name":161,"callback":162,"file":155,"line":163},"admin_menu","actRemoveMetaBoxes",33,{"type":138,"name":165,"callback":166,"file":167,"line":34},"admin_footer","actPrintStyles","fresh-framework\\framework\\assetsIncluding\\lessScssCompiler\\class.ffLessScssCompiler.php",{"type":138,"name":169,"callback":170,"file":171,"line":123},"activated_plugin","catchActivatedPlugin","fresh-framework\\framework\\core\\class.ffPluginLoader.php",{"type":138,"name":173,"callback":174,"file":175,"line":176},"ff_wp_enqueue_scripts","anonymous","fresh-framework\\framework\\core\\wplayer\\class.ffHookManager.php",28,{"type":138,"name":161,"callback":174,"file":175,"line":123},{"type":138,"name":148,"callback":174,"file":175,"line":179},57,{"type":138,"name":181,"callback":174,"file":175,"line":182},"widgets_init",63,{"type":138,"name":184,"callback":174,"file":175,"line":185},"wp_print_scripts",67,{"type":138,"name":187,"callback":174,"file":175,"line":188},"admin_print_styles",71,{"type":138,"name":190,"callback":174,"file":175,"line":191},"wp_print_styles",73,{"type":138,"name":193,"callback":174,"file":175,"line":194},"ff_ajax_shutdown",127,{"type":138,"name":196,"callback":174,"file":175,"line":197},"shutdown",130,{"type":138,"name":199,"callback":174,"file":175,"line":200},"wp_loaded",141,{"type":138,"name":202,"callback":174,"file":203,"line":204},"admin_enqueue_scripts","fresh-framework\\framework\\core\\wplayer\\class.ffWPLayer.php",493,{"type":138,"name":206,"callback":174,"file":203,"line":207},"wp_enqueue_scripts",495,{"type":138,"name":209,"callback":210,"priority":67,"file":203,"line":211},"wp_footer","enqueue_footer_styles",524,{"type":213,"name":214,"callback":215,"file":216,"line":89},"filter","filesystem_method","fileSystemMethodDirect","fresh-framework\\framework\\fileSystem\\factories\\class.ffFileSystem_Factory.php",{"type":138,"name":218,"callback":219,"file":220,"line":221},"plugins_loaded","initFramework","fresh-framework\\framework\\init\\class.ffFrameworkVersionManager.php",111,{"type":138,"name":165,"callback":223,"file":224,"line":225},"printDataBox","fresh-framework\\framework\\options\\walkers\\printers\\class.ffOptionsPrinterDataBoxGenerator.php",16,{"type":138,"name":227,"callback":228,"file":229,"line":185},"mime_types","hookFunction_upload_mimes","fresh-framework\\framework\\query\\attachments\\class.ffMimeTypesManager.php",{"type":138,"name":231,"callback":232,"file":229,"line":233},"post_mime_types","hookFunction_post_mime_types",94,{"type":138,"name":235,"callback":236,"file":229,"line":237},"ext2type","hookFunction_ext2type",115,{"type":138,"name":239,"callback":240,"file":241,"line":242},"wp","actWp","fresh-framework\\framework\\query\\identificators\\query\\class.ffFrontendQueryIdentificator.php",38,{"type":213,"name":244,"callback":244,"priority":67,"file":245,"line":225},"manage_posts_columns","fresh-framework\\framework\\query\\posts\\class.ffPostAdminColumnManager.php",{"type":138,"name":247,"callback":247,"priority":67,"file":245,"line":248},"manage_posts_custom_column",17,{"type":138,"name":250,"callback":251,"file":252,"line":253},"init","actRegisterPostTypes","fresh-framework\\framework\\query\\posts\\registrator\\class.ffPostTypeRegistratorManager.php",14,{"type":213,"name":255,"callback":256,"file":252,"line":163},"post_updated_messages","actionFilterPostUpdatedMessages",{"type":213,"name":255,"callback":256,"file":252,"line":258},46,{"type":213,"name":260,"callback":261,"file":252,"line":151},"post_row_actions","actionFilterPostRowInlineEditAction",{"type":213,"name":260,"callback":263,"file":252,"line":264},"actionFilterPostRowViewAction",62,{"type":138,"name":250,"callback":266,"file":267,"line":268},"actRegisterTaxonomies","fresh-framework\\framework\\query\\taxonomies\\registrator\\class.ffCustomTaxonomyManager.php",10,{"type":213,"name":270,"callback":271,"priority":67,"file":272,"line":273},"the_content","actTheContent","fresh-framework\\framework\\shortcodes\\class.ffShortcodeManager.php",44,{"type":213,"name":270,"callback":275,"priority":67,"file":272,"line":276},"actHookOurShortcodes",45,{"type":138,"name":209,"callback":278,"priority":67,"file":279,"line":280},"actionWPFooter","fresh-framework\\framework\\themes\\assetsIncluding\\class.ffThemeAssetsManager.php",39,{"type":138,"name":282,"callback":283,"priority":67,"file":284,"line":285},"wp_trash_post","actTrashPost","fresh-framework\\framework\\themes\\layouts\\class.ffLayoutPostType.php",173,{"type":138,"name":287,"callback":288,"priority":67,"file":284,"line":289},"before_delete_post","actDeletePost",174,{"type":138,"name":291,"callback":292,"priority":67,"file":284,"line":293},"untrash_post","actUntrashPost",175,{"type":138,"name":295,"callback":296,"priority":67,"file":297,"line":146},"admin_print_scripts","actAdminPrintScripts","fresh-framework\\framework\\themes\\layouts\\class.ffLayoutsEmojiManager.php",{"type":138,"name":165,"callback":299,"priority":67,"file":300,"line":301},"requireModalWindows","fresh-framework\\framework\\themes\\layouts\\metaBoxes\\metaBoxLayoutConditions\\class.ffMetaBoxLayoutConditionsView.php",22,{"type":138,"name":165,"callback":299,"priority":67,"file":303,"line":304},"fresh-framework\\framework\\themes\\layouts\\metaBoxes\\metaBoxLayoutContent\\class.ffMetaBoxLayoutContentView.php",21,{"type":138,"name":165,"callback":299,"priority":67,"file":306,"line":142},"fresh-framework\\framework\\themes\\layouts\\metaBoxes\\metaBoxLayoutPlacement\\class.ffMetaBoxLayoutPlacementView.php",{"type":138,"name":308,"callback":309,"file":310,"line":191},"current_screen","actCurrentScreen","fresh-framework\\framework\\themes\\menuOptions\\class.ffMenuOptionsManager.php",{"type":138,"name":312,"callback":313,"file":310,"line":314},"wp_update_nav_menu","actUpdateMenu",74,{"type":138,"name":165,"callback":316,"file":310,"line":317},"actAdminFooter",75,[319,322,325],{"action":320,"nopriv":321,"callback":174,"hasNonce":321,"hasCapCheck":321,"file":175,"line":24},"ff_ajax_admin",false,{"action":323,"nopriv":321,"callback":174,"hasNonce":321,"hasCapCheck":321,"file":175,"line":324},"ff_ajax",104,{"action":323,"nopriv":326,"callback":174,"hasNonce":321,"hasCapCheck":321,"file":175,"line":327},true,105,[],[330],{"tag":331,"callback":332,"file":272,"line":333},"ffrow","row",95,[],4,3,{"dangerousFunctions":338,"sqlUsage":375,"outputEscaping":380,"fileOperations":142,"externalRequests":784,"nonceChecks":25,"capabilityChecks":67,"bundledLibraries":785},[339,343,347,349,351,353,355,358,360,364,368,372],{"fn":340,"file":341,"line":280,"context":342},"unserialize","fresh-framework\\framework\\dataStorage\\class.ffDataStorage.php","$value = unserialize( $value );",{"fn":340,"file":344,"line":345,"context":346},"fresh-framework\\framework\\dataStorage\\class.ffDataStorage_Cache.php",121,"$cacheFile = unserialize( $cacheFileContent );",{"fn":340,"file":344,"line":348,"context":346},180,{"fn":340,"file":350,"line":163,"context":342},"fresh-framework\\framework\\dataStorage\\class.ffDataStorage_WPOptions_NamespaceFacade.php",{"fn":340,"file":352,"line":123,"context":342},"fresh-framework\\framework\\dataStorage\\class.ffDataStorage_WPPostMetas.php",{"fn":340,"file":354,"line":194,"context":342},"fresh-framework\\framework\\dataStorage\\dataStorageOptionsPost\\class.ffDataStorage_OptionsPostType.php",{"fn":340,"file":354,"line":356,"context":357},218,"$postContentUnserialised = unserialize( $postContent );",{"fn":340,"file":359,"line":123,"context":342},"fresh-framework\\framework\\dataStorage\\dataStorageOptionsPost\\class.ffDataStorage_OptionsPostType_NamespaceFacade.php",{"fn":340,"file":361,"line":362,"context":363},"fresh-framework\\framework\\extern\\scss\\scss.inc.php",4286,"$imports = unserialize(file_get_contents($icache));",{"fn":340,"file":365,"line":366,"context":367},"fresh-framework\\framework\\options\\dataHolders\\class.ffOptionsHolder_CachingFacade.php",66,"$optionsUnserialized = unserialize( $optionsSerialized );",{"fn":340,"file":369,"line":370,"context":371},"fresh-framework\\framework\\options\\walkers\\class.ffOptionsQuery.php",177,"return unserialize( $this->get($query) );",{"fn":340,"file":303,"line":373,"context":374},109,"$revision = unserialize( $revision );",{"prepared":336,"raw":67,"locations":376},[377],{"file":224,"line":378,"context":379},170,"$wpdb->get_var() with variable interpolation",{"escaped":381,"rawEcho":382,"locations":383},32,208,[384,388,391,392,394,396,398,400,402,404,406,408,410,412,414,416,417,419,421,424,426,428,430,431,432,434,436,438,440,442,444,447,449,451,452,453,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,505,506,508,510,512,514,516,518,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,563,565,567,569,571,573,575,577,579,581,583,585,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,672,673,674,676,677,679,680,681,683,685,686,688,690,691,692,694,696,698,700,701,703,705,707,709,711,713,715,717,719,721,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,759,761,763,765,768,770,772,773,775,777,779,780,781,782],{"file":385,"line":386,"context":387},"fresh-framework\\framework\\adminScreens\\class.ffAdminScreenView.php",118,"raw output",{"file":389,"line":390,"context":387},"fresh-framework\\framework\\adminScreens\\metaBoxes\\class.ffMetaBoxView.php",35,{"file":389,"line":242,"context":387},{"file":389,"line":393,"context":387},52,{"file":395,"line":188,"context":387},"fresh-framework\\framework\\adminScreens\\modalWindow\\class.ffModalWindowManager.php",{"file":395,"line":397,"context":387},79,{"file":395,"line":399,"context":387},89,{"file":395,"line":401,"context":387},113,{"file":395,"line":403,"context":387},117,{"file":395,"line":405,"context":387},129,{"file":395,"line":407,"context":387},133,{"file":395,"line":409,"context":387},152,{"file":395,"line":411,"context":387},155,{"file":395,"line":413,"context":387},169,{"file":395,"line":415,"context":387},172,{"file":395,"line":293,"context":387},{"file":395,"line":418,"context":387},193,{"file":395,"line":420,"context":387},197,{"file":422,"line":423,"context":387},"fresh-framework\\framework\\adminScreens\\modalWindow\\class.ffModalWindowView.php",59,{"file":422,"line":425,"context":387},61,{"file":427,"line":123,"context":387},"fresh-framework\\framework\\extern\\iconfonts\\actualize_fonts.php",{"file":427,"line":429,"context":387},86,{"file":427,"line":237,"context":387},{"file":427,"line":403,"context":387},{"file":427,"line":433,"context":387},166,{"file":427,"line":435,"context":387},191,{"file":437,"line":409,"context":387},"fresh-framework\\framework\\extern\\iconfonts\\ff-font-stateface\\convertor.php",{"file":437,"line":439,"context":387},154,{"file":437,"line":441,"context":387},157,{"file":437,"line":443,"context":387},161,{"file":445,"line":446,"context":387},"fresh-framework\\framework\\extern\\iconfonts\\fonts.php",58,{"file":445,"line":448,"context":387},64,{"file":445,"line":450,"context":387},126,{"file":445,"line":197,"context":387},{"file":445,"line":407,"context":387},{"file":454,"line":455,"context":387},"fresh-framework\\framework\\extern\\less\\lessc.inc-OLD.php",3617,{"file":454,"line":457,"context":387},3620,{"file":454,"line":459,"context":387},3623,{"file":454,"line":461,"context":387},3631,{"file":454,"line":463,"context":387},3633,{"file":454,"line":465,"context":387},3642,{"file":454,"line":467,"context":387},3645,{"file":454,"line":469,"context":387},3647,{"file":361,"line":471,"context":387},4055,{"file":361,"line":473,"context":387},4064,{"file":361,"line":475,"context":387},4066,{"file":361,"line":477,"context":387},4076,{"file":361,"line":479,"context":387},4077,{"file":361,"line":481,"context":387},4142,{"file":361,"line":483,"context":387},4151,{"file":361,"line":485,"context":387},4152,{"file":361,"line":487,"context":387},4159,{"file":361,"line":489,"context":387},4164,{"file":361,"line":491,"context":387},4172,{"file":361,"line":493,"context":387},4176,{"file":361,"line":495,"context":387},4329,{"file":361,"line":497,"context":387},4332,{"file":361,"line":499,"context":387},4336,{"file":361,"line":501,"context":387},4345,{"file":503,"line":504,"context":387},"fresh-framework\\framework\\options\\printerComponent\\class.ffOptionsPrinterComponents.php",18,{"file":503,"line":304,"context":387},{"file":503,"line":507,"context":387},23,{"file":503,"line":509,"context":387},120,{"file":503,"line":511,"context":387},125,{"file":503,"line":513,"context":387},147,{"file":503,"line":515,"context":387},148,{"file":503,"line":517,"context":387},151,{"file":503,"line":409,"context":387},{"file":503,"line":520,"context":387},167,{"file":503,"line":522,"context":387},186,{"file":503,"line":524,"context":387},238,{"file":503,"line":526,"context":387},284,{"file":503,"line":528,"context":387},293,{"file":503,"line":530,"context":387},300,{"file":503,"line":532,"context":387},306,{"file":503,"line":534,"context":387},339,{"file":503,"line":536,"context":387},348,{"file":503,"line":538,"context":387},355,{"file":503,"line":540,"context":387},361,{"file":503,"line":542,"context":387},411,{"file":503,"line":544,"context":387},420,{"file":503,"line":546,"context":387},427,{"file":503,"line":548,"context":387},433,{"file":503,"line":550,"context":387},459,{"file":503,"line":552,"context":387},471,{"file":503,"line":554,"context":387},478,{"file":503,"line":556,"context":387},486,{"file":503,"line":558,"context":387},547,{"file":503,"line":560,"context":387},551,{"file":503,"line":562,"context":387},559,{"file":503,"line":564,"context":387},565,{"file":503,"line":566,"context":387},571,{"file":503,"line":568,"context":387},581,{"file":503,"line":570,"context":387},589,{"file":503,"line":572,"context":387},595,{"file":503,"line":574,"context":387},601,{"file":503,"line":576,"context":387},666,{"file":503,"line":578,"context":387},670,{"file":503,"line":580,"context":387},678,{"file":503,"line":582,"context":387},684,{"file":503,"line":584,"context":387},690,{"file":503,"line":107,"context":387},{"file":503,"line":587,"context":387},708,{"file":503,"line":589,"context":387},714,{"file":503,"line":591,"context":387},720,{"file":503,"line":593,"context":387},751,{"file":503,"line":595,"context":387},755,{"file":503,"line":597,"context":387},763,{"file":503,"line":599,"context":387},769,{"file":503,"line":601,"context":387},775,{"file":503,"line":603,"context":387},785,{"file":503,"line":605,"context":387},793,{"file":503,"line":607,"context":387},799,{"file":503,"line":609,"context":387},805,{"file":503,"line":611,"context":387},823,{"file":503,"line":613,"context":387},840,{"file":503,"line":615,"context":387},848,{"file":503,"line":617,"context":387},854,{"file":503,"line":619,"context":387},860,{"file":503,"line":621,"context":387},928,{"file":503,"line":623,"context":387},930,{"file":503,"line":625,"context":387},932,{"file":503,"line":627,"context":387},933,{"file":503,"line":629,"context":387},935,{"file":503,"line":631,"context":387},996,{"file":503,"line":633,"context":387},999,{"file":503,"line":65,"context":387},{"file":503,"line":636,"context":387},1048,{"file":503,"line":638,"context":387},1050,{"file":503,"line":640,"context":387},1051,{"file":503,"line":642,"context":387},1052,{"file":503,"line":644,"context":387},1087,{"file":503,"line":646,"context":387},1088,{"file":503,"line":648,"context":387},1089,{"file":503,"line":650,"context":387},1151,{"file":503,"line":652,"context":387},1155,{"file":503,"line":654,"context":387},1163,{"file":503,"line":656,"context":387},1169,{"file":503,"line":658,"context":387},1175,{"file":503,"line":660,"context":387},1185,{"file":503,"line":662,"context":387},1193,{"file":503,"line":664,"context":387},1199,{"file":503,"line":666,"context":387},1205,{"file":503,"line":668,"context":387},1239,{"file":670,"line":671,"context":387},"fresh-framework\\framework\\options\\printerComponent\\class.ffOptionsPrinterElements.php",7,{"file":670,"line":142,"context":387},{"file":670,"line":242,"context":387},{"file":670,"line":675,"context":387},40,{"file":670,"line":264,"context":387},{"file":670,"line":678,"context":387},68,{"file":670,"line":314,"context":387},{"file":670,"line":32,"context":387},{"file":670,"line":682,"context":387},83,{"file":670,"line":684,"context":387},84,{"file":670,"line":233,"context":387},{"file":670,"line":687,"context":387},102,{"file":670,"line":689,"context":387},103,{"file":670,"line":324,"context":387},{"file":670,"line":450,"context":387},{"file":670,"line":693,"context":387},134,{"file":670,"line":695,"context":387},150,{"file":369,"line":697,"context":387},165,{"file":699,"line":333,"context":387},"fresh-framework\\framework\\options\\walkers\\printers\\class.ffOptionsPrinter.php",{"file":699,"line":556,"context":387},{"file":699,"line":702,"context":387},498,{"file":699,"line":704,"context":387},510,{"file":699,"line":706,"context":387},515,{"file":699,"line":708,"context":387},516,{"file":699,"line":710,"context":387},517,{"file":699,"line":712,"context":387},519,{"file":699,"line":714,"context":387},520,{"file":699,"line":716,"context":387},535,{"file":699,"line":718,"context":387},568,{"file":720,"line":33,"context":387},"fresh-framework\\framework\\options\\walkers\\printers\\class.ffOptionsPrinterBoxed.php",{"file":720,"line":258,"context":387},{"file":224,"line":723,"context":387},158,{"file":224,"line":725,"context":387},190,{"file":224,"line":727,"context":387},234,{"file":224,"line":729,"context":387},240,{"file":224,"line":731,"context":387},247,{"file":224,"line":733,"context":387},338,{"file":224,"line":735,"context":387},350,{"file":224,"line":737,"context":387},360,{"file":224,"line":739,"context":387},368,{"file":224,"line":741,"context":387},414,{"file":224,"line":743,"context":387},439,{"file":224,"line":745,"context":387},444,{"file":224,"line":747,"context":387},450,{"file":224,"line":749,"context":387},599,{"file":751,"line":33,"context":387},"fresh-framework\\framework\\options\\walkers\\printers\\class.ffOptionsPrinterLogic.php",{"file":753,"line":276,"context":387},"fresh-framework\\framework\\query\\attachments\\items\\class.ffAttachmentGetter.php",{"file":245,"line":755,"context":387},184,{"file":245,"line":757,"context":387},188,{"file":245,"line":418,"context":387},{"file":245,"line":760,"context":387},195,{"file":245,"line":762,"context":387},202,{"file":764,"line":188,"context":387},"fresh-framework\\framework\\query\\posts\\items\\class.ffPostGetter.php",{"file":766,"line":767,"context":387},"fresh-framework\\framework\\themes\\functions\\class.ffCommentsFormPrinter.php",142,{"file":284,"line":769,"context":387},114,{"file":284,"line":771,"context":387},123,{"file":284,"line":515,"context":387},{"file":303,"line":774,"context":387},25,{"file":303,"line":776,"context":387},42,{"file":303,"line":778,"context":387},47,{"file":303,"line":317,"context":387},{"file":303,"line":34,"context":387},{"file":310,"line":415,"context":387},{"file":310,"line":783,"context":387},176,8,[786],{"name":787,"version":788,"knownCves":789},"Select2","3.4.6",[],[],{"summary":792,"deductions":793},"The \"posts-per-page-customizer\" v1.0.0 plugin exhibits a mixed security posture. While it has no recorded historical vulnerabilities and uses prepared statements for a majority of its SQL queries, significant concerns arise from its static analysis. The plugin exposes a considerable attack surface with three unprotected AJAX handlers, presenting a direct pathway for potential unauthorized actions if exploited. Furthermore, the presence of the `unserialize` function, a known vector for object injection vulnerabilities when used with untrusted input, is a critical warning sign.  The low percentage of properly escaped output is also worrying, increasing the risk of cross-site scripting (XSS) vulnerabilities.\n\nThe lack of direct taint analysis results is neutral, as it could indicate a lack of identified flows or insufficient analysis depth. However, coupled with the unprotected AJAX endpoints and the dangerous `unserialize` function, the potential for serious security flaws remains high. The plugin also bundles an outdated version of Select2, which could have its own known vulnerabilities.\n\nIn conclusion, while the absence of past vulnerabilities is positive, the current static analysis reveals several high-risk areas that require immediate attention. The unprotected entry points, use of `unserialize`, and poor output escaping significantly outweigh the strengths of its SQL practices and vulnerability history. Remediation of these issues is crucial to improve the plugin's security.",[794,797,799,801,803],{"reason":795,"points":796},"3 unprotected AJAX handlers",15,{"reason":798,"points":268},"Dangerous function: unserialize",{"reason":800,"points":784},"Low output escaping percentage (13%)",{"reason":802,"points":336},"Bundled outdated library: Select2 v3.4.6",{"reason":804,"points":805},"No nonce checks",5,"2026-03-16T22:43:22.166Z",{"wat":808,"direct":820},{"assetPaths":809,"generatorPatterns":815,"scriptPaths":816,"versionParams":819},[810,811,812,813,814],"\u002Fwp-content\u002Fplugins\u002Fposts-per-page-customizer\u002Fframework\u002FadminScreens\u002Fassets\u002Fjs\u002FadminScreens.js","\u002Fwp-content\u002Fplugins\u002Fposts-per-page-customizer\u002Fframework\u002Foptions\u002Fassets\u002Foptions.js","\u002Fwp-content\u002Fplugins\u002Fposts-per-page-customizer\u002Fframework\u002Foptions\u002Fassets\u002Foptions.css","\u002Fwp-content\u002Fplugins\u002Fposts-per-page-customizer\u002Ffresh-framework\u002Fframework\u002FadminScreens\u002Fassets\u002Fjs\u002Ffreshlib.js","\u002Fwp-content\u002Fplugins\u002Fposts-per-page-customizer\u002Ffresh-framework\u002Fframework\u002Fextern\u002Fjquery-ui\u002Fdatepicker.css",[],[813,817,818],"\u002Fwp-content\u002Fplugins\u002Fposts-per-page-customizer\u002Ffresh-framework\u002Fframework\u002FadminScreens\u002Fassets\u002Fjs\u002FadminScreens.js","\u002Fwp-content\u002Fplugins\u002Fposts-per-page-customizer\u002Ffresh-framework\u002Fframework\u002Foptions\u002Fassets\u002Foptions.js",[],{"cssClasses":821,"htmlComments":825,"htmlAttributes":826,"restEndpoints":827,"jsGlobals":828,"shortcodeOutput":830},[822,823,824],"ff-view-identification","admin-screen-name","admin-view-name",[],[],[],[829],"ffContainer",[]]