[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fLoTfw7v_UgEaZ3zK5XzpsEwf3qIarCzPydctXXz7gAo":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":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":40,"analysis":145,"fingerprints":272},"restrict-widgets","Restrict Widgets","1.3.1","dFactory","https:\u002F\u002Fprofiles.wordpress.org\u002Fdfactory\u002F","\u003Cp>\u003Ca href=\"http:\u002F\u002Fwww.dfactory.eu\u002Fplugins\u002Frestrict-widgets\u002F\" rel=\"nofollow ugc\">Restrict Widgets\u003C\u002Fa> is all in one solution for widget management in WordPress. It lets you easily control the pages that each widget will appear on and avoid creating multiple sidebars and duplicating widgets. You can also set who can manage widgets, which sidebars and widgets will be available to selected users, which widget options will be available and how it will be displayed.\u003C\u002Fp>\n\u003Cp>By default, Hide widget on selected is enabled with no options selected, so all current widgets will continue to display on all pages.\u003C\u002Fp>\n\u003Cp>For more information, check out plugin page at \u003Ca href=\"http:\u002F\u002Fwww.dfactory.eu\u002F\" rel=\"nofollow ugc\">dFactory\u003C\u002Fa> or plugin \u003Ca href=\"http:\u002F\u002Fwww.dfactory.eu\u002Fsupport\u002Fforum\u002Frestrict-widgets\u002F\" rel=\"nofollow ugc\">support forum\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Features include:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Hide or display each widget on selected pages, posts, categories, custom taxonomies, custom post types, single posts, archives, special pages, for logged in or logged out users, current language, mobile device and so on\u003C\u002Fli>\n\u003Cli>Select which user roles are restricted to manage widgets\u003C\u002Fli>\n\u003Cli>Select which sidebars will be restricted to admins only\u003C\u002Fli>\n\u003Cli>Select which widgets will be restricted to admins only\u003C\u002Fli>\n\u003Cli>Select which widget options will be restricted to admins only\u003C\u002Fli>\n\u003Cli>Choose to display or not widget options as groups\u003C\u002Fli>\n\u003Cli>Option to modify the is_active_sidebar() function to use Restrict Widgets display settings\u003C\u002Fli>\n\u003Cli>Multisite compatible\u003C\u002Fli>\n\u003Cli>WPML compatible\u003C\u002Fli>\n\u003Cli>Polylang compatible\u003C\u002Fli>\n\u003Cli>.pot file for translations included\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Translations:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Chinese – by Changmeng Hu\u003C\u002Fli>\n\u003Cli>Czech – by Martin Kucera\u003C\u002Fli>\n\u003Cli>German – by \u003Ca href=\"http:\u002F\u002Fapart-webdesign.de\u002F\" rel=\"nofollow ugc\">Angelika Reisiger\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Hebrew – by \u003Ca href=\"http:\u002F\u002Fatar4u.com\u002F\" rel=\"nofollow ugc\">Ahrale Shrem\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Italian – by \u003Ca href=\"http:\u002F\u002Fsododesign.it\u002F\" rel=\"nofollow ugc\">Davide Pante\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Polish – by Bartosz Arendt\u003C\u002Fli>\n\u003C\u002Ful>\n","All in one widgets and sidebars management in WordPress. Allows you to hide or display widgets on specified pages and restrict access for users.",4000,132717,96,36,"2017-11-28T12:16:00.000Z","4.7.32","4.0","",[20,21,22,23,24],"cms","conditional-tags","widget","widget-only","widgets","http:\u002F\u002Fwww.dfactory.eu\u002Fplugins\u002Frestrict-widgets\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frestrict-widgets.1.3.1.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":36,"avg_patch_time_days":37,"trust_score":38,"computed_at":39},"dfactory",12,356510,87,247,70,"2026-04-04T15:18:48.288Z",[41,65,82,106,127],{"slug":42,"name":43,"version":44,"author":45,"author_profile":46,"description":47,"short_description":48,"active_installs":49,"downloaded":50,"rating":51,"num_ratings":52,"last_updated":53,"tested_up_to":54,"requires_at_least":55,"requires_php":56,"tags":57,"homepage":18,"download_link":61,"security_score":62,"vuln_count":63,"unpatched_count":28,"last_vuln_date":64,"fetched_at":30},"widget-logic","Widget Logic","6.0.9","Widgetlogic.org","https:\u002F\u002Fprofiles.wordpress.org\u002Fwidgetlogics\u002F","\u003Cp>This plugin gives every widget an extra control field called “Widget logic” that lets you control the pages that the widget will appear on. The text field lets you use WP’s \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FConditional_Tags\" rel=\"nofollow ugc\">Conditional Tags\u003C\u002Fa>, or any general PHP code.\u003C\u002Fp>\n\u003Cp>The configuring and options are in the usual widget admin interface.\u003C\u002Fp>\n\u003Cp>BIG UPDATE:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>Now you can control widget in Gutenberg Widgets editor as well as in Classic Editor. It is just as easy as before but also in gutenberg view.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Pre-installed widgets let you add special widget with one click of the mouse. First pre-installed widget is Live Match that let you add widget of one random live football game with real time score updates (teams logos, livescore, minute of the match, tournament name). And more interesting widgets to come!\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>NOTE ON DEFAULT FUNCTIONS:\u003C\u002Fstrong> Widget Logic includes a whitelist of common WordPress conditional tags and safe functions. If you need additional WordPress functions that are not currently whitelisted, please create a topic in our \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fwidget-logic\u002F\" rel=\"ugc\">support forum\u003C\u002Fa> to request them. We regularly add commonly requested functions in new releases.\u003C\u002Fp>\n\u003Ch4>Configuration\u003C\u002Fh4>\n\u003Cp>Aside from logic against your widgets, there are three options added to the foot of the widget admin page (see screenshots).\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>Use ‘wp_reset_query’ fix — Many features of WP, as well as the many themes and plugins out there, can mess with the conditional tags, such that is_home is NOT true on the home page. This can often be fixed with a quick wp_reset_query() statement just before the widgets are called, and this option puts that in for you rather than having to resort to code editing\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Load logic — This option allows you to set the point in the page load at which your widget logic if first checked. Pre v.50 it was when the ‘wp_head’ trigger happened, ie during the creation of the HTML’s HEAD block. Many themes didn’t call wp_head, which was a problem. From v.50 it happens, by default, as early as possible, which is as soon as the plugin loads. You can now specify these ‘late load’ points (in chronological order):\u003C\u002Fp>\n\u003Cul>\n\u003Cli>after the theme loads (after_setup_theme trigger)\u003C\u002Fli>\n\u003Cli>when all PHP loaded (wp_loaded trigger)\u003C\u002Fli>\n\u003Cli>after query variables set (parse_query) – this is the default\u003C\u002Fli>\n\u003Cli>during page header (wp_head trigger)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You may need to delay the load if your logic depends on functions defined, eg in the theme functions.php file. Conversely you may want the load early so that the widget count is calculated correctly, eg to show an alternative layour or content when a sidebar has no widgets.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Don’t cache widget logic results — From v .58 the widget logic code should only execute once, but that might cause unexpected results with some themes, so this option is here to turn that behaviour off. (The truth\u002Ffalse of the code will be evaluated every time the sidebars_widgets filter is called.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Custom PHP Functions — From v.6.0.6 you can use the \u003Ccode>widget_logic_allowed_functions\u003C\u002Fcode> filter to add custom PHP functions that will be allowed in Widget Logic fields. By default, only WordPress conditional tags and a whitelist of safe functions are available. This filter allows you to extend the functionality and use your own custom functions.\u003C\u002Fp>\n\u003Cp>To add a custom function, add the following code to your theme’s \u003Ccode>functions.php\u003C\u002Fcode> file:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`add_filter('widget_logic_allowed_functions', 'my_allowed_functions');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>function my_allowed_functions($functions) {\u003Cbr \u002F>\n    $functions[] = ‘\u003Cem>my_custom_function_name\u003C\u002Fem>‘;\u003Cbr \u002F>\n    return $functions;\u003Cbr \u002F>\n}`\u003C\u002Fp>\n\u003Cp>You can add multiple functions by using one wrapper function:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`add_filter('widget_logic_allowed_functions', 'my_allowed_functions');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>function my_allowed_functions($functions) {\u003Cbr \u002F>\n    $functions[] = ‘is_special_page’;\u003Cbr \u002F>\n    $functions[] = ‘is_user_verified’;\u003Cbr \u002F>\n    $functions[] = ‘get_sidebar_title’;\u003Cbr \u002F>\n    return $functions;\u003Cbr \u002F>\n}`\u003C\u002Fp>\n\u003Cp>\u003Cstrong>IMPORTANT NOTE ON VARIABLES:\u003C\u002Fstrong> Widget Logic is designed to work with simple data types (strings, numbers, booleans). If you need to use complex variables, global state, or conditional logic that depends on many factors, create a custom function in your theme’s \u003Ccode>functions.php\u003C\u002Fcode> file and call it from Widget Logic:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Good approach (in functions.php):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`function is_special_page() {\nglobal $post;\n$special_ids = array(5, 10, 15);\n$conditions = some_complex_function();\n\nreturn is_page() && in_array($post->ID, $special_ids) && $conditions;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>}`\u003C\u002Fp>\n\u003Cp>Then in Widget Logic field, simply use: \u003Ccode>is_special_page()\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Less ideal approach (in Widget Logic field):\u003C\u002Fstrong>\u003Cbr \u002F>\nAvoid putting complex logic directly in the Widget Logic field. Keep it simple and let your custom function handle the complexity. This keeps your widget settings clean and maintainable.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Interaction with External Services\u003C\u002Fh4>\n\u003Cp>Widget Logic uses the external service to obtain up-to-date information about the results of football matches. \u003Ca href=\"https:\u002F\u002Fwidgetlogic.org\" rel=\"nofollow ugc\">widgetlogic.org\u003C\u002Fa> is a source of sports information, that provides a wide range of information about football, including various leagues, tournaments, and championships from around the world.\u003C\u002Fp>\n\u003Cp>The functioning of the \u003Ca href=\"https:\u002F\u002Fwidgetlogic.org\" rel=\"nofollow ugc\">widgetlogic.org\u003C\u002Fa> service is based on delivering real-time data about selected matches without the need to refresh the page. This means that data is automatically updated without requiring page reload. This approach ensures users quick and uninterrupted access to the latest sports data without the effort of manually updating information, allowing them to stay informed about ongoing events in real-time.\u003C\u002Fp>\n\u003Ch3>Writing Logic Code\u003C\u002Fh3>\n\u003Cp>The text in the ‘Widget logic’ field can be full PHP code and should return ‘true’ when you need the widget to appear. If there is no ‘return’ in the text, an implicit ‘return’ is added to the start and a ‘;’ is added on the end. (This is just to make single statements like is_home() more convenient.)\u003C\u002Fp>\n\u003Ch4>The Basics\u003C\u002Fh4>\n\u003Cp>Make good use of \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FConditional_Tags\" rel=\"nofollow ugc\">WP’s own conditional tags\u003C\u002Fa>. You can vary and combine code using:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>!\u003C\u002Fcode> (NOT) to \u003Cstrong>reverse\u003C\u002Fstrong> the logic, eg \u003Ccode>!is_home()\u003C\u002Fcode> is TRUE when this is NOT the home page.\u003C\u002Fli>\n\u003Cli>\u003Ccode>||\u003C\u002Fcode> (OR) to \u003Cstrong>combine\u003C\u002Fstrong> conditions. \u003Ccode>X OR Y\u003C\u002Fcode> is TRUE when either X is true or Y is true.\u003C\u002Fli>\n\u003Cli>\u003Ccode>&&\u003C\u002Fcode> (AND) to make conditions \u003Cstrong>more specific\u003C\u002Fstrong>. \u003Ccode>X AND Y\u003C\u002Fcode> is TRUE when both X is true and Y is true.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>There are lots of great code examples on the WP forums, and on WP sites across the net. But the WP Codex is also full of good examples to adapt, such as \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FTemplate_Tags\u002Fin_category#Testing_if_a_post_is_in_a_descendant_category\" rel=\"nofollow ugc\">Test if post is in a descendent category\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Examples\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>is_home()\u003C\u002Fcode> — just the main blog page\u003C\u002Fli>\n\u003Cli>\u003Ccode>!is_page('about')\u003C\u002Fcode> — everywhere EXCEPT this specific WP ‘page’\u003C\u002Fli>\n\u003Cli>\u003Ccode>!is_user_logged_in()\u003C\u002Fcode> — shown when a user is not logged in\u003C\u002Fli>\n\u003Cli>\u003Ccode>is_category(array(5,9,10,11))\u003C\u002Fcode> — category page of one of the given category IDs\u003C\u002Fli>\n\u003Cli>\u003Ccode>is_single() && in_category('baked-goods')\u003C\u002Fcode> — single post that’s in the category with this slug\u003C\u002Fli>\n\u003Cli>\u003Ccode>current_user_can('level_10')\u003C\u002Fcode> — admin only widget\u003C\u002Fli>\n\u003Cli>\u003Ccode>strpos($_SERVER['HTTP_REFERER'], \"google.com\")!=false\u003C\u002Fcode> — widget to show when clicked through from a google search\u003C\u002Fli>\n\u003Cli>\u003Ccode>is_category() && custom_function_to_check_the_category()\u003C\u002Fcode> — category page that’s a descendent of category 5\u003C\u002Fli>\n\u003Cli>\u003Ccode>custom_function_from_functions_php_to_check_the_page()\u003C\u002Fcode> — WP page that is a child of page 77\u003C\u002Fli>\n\u003Cli>\u003Ccode>custom_function_from_functions_php_to_check_the_page_child_of(13)\u003C\u002Fcode> — home page OR the page that’s a child of page 13\u003C\u002Fli>\n\u003C\u002Ful>\n","Widget Logic lets you control on which pages widgets appear using WP's conditional tags.",100000,3242040,88,188,"2026-01-15T09:43:00.000Z","6.9.4","3.0","5.4",[58,21,59,60,22],"blocks","gutenberg-widgets","sidebar","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwidget-logic.6.0.9.zip",95,2,"2025-06-09 00:00:00",{"slug":66,"name":67,"version":68,"author":7,"author_profile":8,"description":69,"short_description":70,"active_installs":71,"downloaded":72,"rating":73,"num_ratings":74,"last_updated":75,"tested_up_to":76,"requires_at_least":77,"requires_php":18,"tags":78,"homepage":80,"download_link":81,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"widget-icon","Widget Icon","1.1.3","\u003Cp>\u003Ca href=\"http:\u002F\u002Fwww.dfactory.eu\u002Fplugins\u002Fwidget-icon\u002F\" rel=\"nofollow ugc\">Widget Icon\u003C\u002Fa> enhances your website with 640+ beautiful icons from \u003Ca href=\"http:\u002F\u002Ffortawesome.github.io\u002FFont-Awesome\u002F\" rel=\"nofollow ugc\">Font Awesome\u003C\u002Fa> and \u003Ca href=\"http:\u002F\u002Faristeides.com\u002Felusive-iconfont\u002F\" rel=\"nofollow ugc\">Elusive\u003C\u002Fa> font libraries designed for Twitter Bootstrap. You just select a font library, select an icon and display it in any widget on your WordPress site.\u003C\u002Fp>\n\u003Cp>For more information, check out plugin page at \u003Ca href=\"http:\u002F\u002Fwww.dfactory.eu\u002F\" rel=\"nofollow ugc\">dFactory\u003C\u002Fa> or plugin \u003Ca href=\"http:\u002F\u002Fwww.dfactory.eu\u002Fsupport\u002Fforum\u002Fwidget-icon\u002F\" rel=\"nofollow ugc\">support forum\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Features include:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Works out-of-the-box with every widget and theme.\u003C\u002Fli>\n\u003Cli>Select from 640+ beautiful icons\u003C\u002Fli>\n\u003Cli>Select from Font Awesome and Elusive icon libraries\u003C\u002Fli>\n\u003Cli>Select icon position\u003C\u002Fli>\n\u003Cli>Set icon padding in pixels or percentage\u003C\u002Fli>\n\u003Cli>Select icon vertical allignment (top, bottom, middle etc.)\u003C\u002Fli>\n\u003Cli>Select icon size (standard, large, x2, x3, x4)\u003C\u002Fli>\n\u003Cli>Automatically use color from widget title or set it manually with color-picker\u003C\u002Fli>\n\u003Cli>.pot file for translations included\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can also use these icons anywhere in your theme.\u003C\u002Fp>\n\u003Ch4>For Elusive icons\u003C\u002Fh4>\n\u003Cp>Syntax: \u003Ccode>\u003Ci class=\"elusive icon-adjust\">\u003C\u002Fi>\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch4>For Font Awesome icons\u003C\u002Fh4>\n\u003Cp>Syntax: \u003Ccode>\u003Ci class=\"font-awesome icon-adjust\">\u003C\u002Fi>\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch4>Translations:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Chinese – by xiaoyaole\u003C\u002Fli>\n\u003Cli>German – by Matthias Siebler\u003C\u002Fli>\n\u003Cli>Polish – by Bartosz Arendt\u003C\u002Fli>\n\u003C\u002Ful>\n","Enhance your website with 640+ icons designed for Twitter Bootstrap. Just select an icon and display it in any widget on your WordPress site.",700,24488,98,13,"2013-12-09T15:21:00.000Z","3.7.41","3.3",[79,22,66,23,24],"icon","http:\u002F\u002Fwww.dfactory.eu\u002Fplugins\u002Fwidget-icon\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwidget-icon.1.1.3.zip",{"slug":83,"name":84,"version":85,"author":86,"author_profile":87,"description":88,"short_description":89,"active_installs":90,"downloaded":91,"rating":92,"num_ratings":93,"last_updated":94,"tested_up_to":95,"requires_at_least":55,"requires_php":18,"tags":96,"homepage":101,"download_link":102,"security_score":103,"vuln_count":104,"unpatched_count":104,"last_vuln_date":105,"fetched_at":30},"widget-manager-light","Widget Manager Light","1.18","OTWthemes","https:\u002F\u002Fprofiles.wordpress.org\u002Fotwthemes\u002F","\u003Cp>Widget Manager gives you full control over widget visibility via nice and easy interface.\u003C\u002Fp>\n\u003Cp>Every widget can now be displayed on or hidden from one or few pages. Display relevent content on your pages, posts, categories, tags, archives, custom post types, custom taxonomies, page templates, WordPress service pages, etc..\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Upgrade to the Pro version of this plugin – the worlds most complete Sidebar and Widget management system for WordPress including regular updates and premium support:\u003Cbr \u002F>\n  \u003Ca href=\"https:\u002F\u002F1.envato.market\u002Fc\u002F1246358\u002F275988\u002F4415?subId1=sbm&subId2=2020&subId3=https%3A%2F%2Fcodecanyon.net%2Fitem%2Fsidebar-widget-manager-for-wordpress%2F2287447&u=https%3A%2F%2Fcodecanyon.net%2Fitem%2Fsidebar-widget-manager-for-wordpress%2F2287447\" rel=\"nofollow ugc\">Sidebar and Widget Manager\u003C\u002Fa> | \u003Ca href=\"http:\u002F\u002Fotwthemes.com\u002Fdemos\u002F1ts\u002F?item=Sidebar%20Widget%20Manager&utm_source=wp.org&utm_medium=page&utm_content=upgrade&utm_campaign=wml\" rel=\"nofollow ugc\">Demo site\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Display widgets based on language(WMPL plugin) or user role is available as well.\u003C\u002Fp>\n\u003Cp>Support for WooCommerce plugin, bbPress plugin and BuddyPress plugin has been added too.\u003C\u002Fp>\n\u003Cp>This plugin works with all widgedets – WordPress default and any custom added widget.\u003C\u002Fp>\n\u003Cp>The interface is very intuitive and requires no coding knowledge at all.\u003C\u002Fp>\n\u003Cp>How Widget Manager Light works\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Go to Appearance -> Widgets.\u003C\u002Fli>\n\u003Cli>Select a Widget in any sidebar.\u003C\u002Fli>\n\u003Cli>Click on the Set Visibility button.\u003C\u002Fli>\n\u003Cli>Select where to display on or hide from.\u003C\u002Fli>\n\u003C\u002Ful>\n","Widget Manager lets you control on which pages widgets appear via nice and easy interface. Show or hide widgets. Display relevant content on your page &hellip;",600,48849,76,11,"2022-03-03T06:42:00.000Z","5.9.13",[97,21,98,99,100],"admin","context","filter","hide-widgets","http:\u002F\u002Fotwthemes.com\u002F?utm_source=wp.org&utm_medium=admin&utm_content=site&utm_campaign=wml","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwidget-manager-light.zip",64,1,"2025-04-02 00:00:00",{"slug":107,"name":108,"version":109,"author":110,"author_profile":111,"description":18,"short_description":112,"active_installs":113,"downloaded":114,"rating":115,"num_ratings":63,"last_updated":116,"tested_up_to":117,"requires_at_least":118,"requires_php":18,"tags":119,"homepage":123,"download_link":124,"security_score":125,"vuln_count":104,"unpatched_count":104,"last_vuln_date":126,"fetched_at":30},"shortcode-generator","Shortcode Generator","1.1","kylegetson","https:\u002F\u002Fprofiles.wordpress.org\u002Fkylegetson\u002F","Generate as many shortcodes. Keep pages synchronized for split testing, or reuse a specific peice of code on multiple pages.",100,13052,60,"2009-11-17T01:22:00.000Z","2.8.6","2.8.0",[20,120,121,122,24],"shortcodes","split-testing","unlimited","http:\u002F\u002Fwww.getson.info\u002Fshortcode-generator","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fshortcode-generator.1.1.zip",63,"2025-07-08 00:00:00",{"slug":128,"name":129,"version":130,"author":131,"author_profile":132,"description":133,"short_description":134,"active_installs":135,"downloaded":136,"rating":28,"num_ratings":28,"last_updated":137,"tested_up_to":138,"requires_at_least":77,"requires_php":18,"tags":139,"homepage":143,"download_link":144,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"bcms","bCMS","5.3","Casey Bisson","https:\u002F\u002Fprofiles.wordpress.org\u002Fmisterbisson\u002F","\u003Cp>Make WordPress a better CMS. Create a post loop in a widget. Lazy load widgets. More shortcodes. More good.\u003C\u002Fp>\n\u003Ch4>Widgets\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Post Loop allows you to build your own, um, post loop, and put it anywhere a widget will fit.\u003C\u002Fli>\n\u003Cli>Pages replaces WP’s built in Pages widget and adds the option to expand the page list to include the parents and immediate children of the page your currently viewing.\u003C\u002Fli>\n\u003Cli>The Breadcrumbs widget makes navigation throughout the site easier.\u003C\u002Fli>\n\u003Cli>Category description widget can display the category description without requiring you to modify your theme.\u003C\u002Fli>\n\u003Cli>The paged navigation widget makes it easier to display the number of pages in an archive.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Shortcodes\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Automatically build an index of headings on a page and create a table of contents to it (with links to anchors on the page)\u003C\u002Fli>\n\u003Cli>Embed a list of pages or sub-pages on a page or post\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Fork me!\u003C\u002Fh4>\n\u003Cp>This plugin is on Github: https:\u002F\u002Fgithub.com\u002Fmisterbisson\u002Fbcms\u003C\u002Fp>\n\u003Ch4>History\u003C\u002Fh4>\n\u003Cp>The bCMS plugin is derived from bSuite and includes many of the content management features and none of the cruft from that plugin. See \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Ftags\u002Fbsuite\" rel=\"ugc\">the whole family of bSuite plugins\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Build status\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Ftravis-ci.org\u002Fmisterbisson\u002Fbcms\" rel=\"nofollow ugc\">Master build status at Travis-CI\u003C\u002Fa>: \u003Ca href=\"https:\u002F\u002Ftravis-ci.org\u002Fmisterbisson\u002Fbcms\" rel=\"nofollow ugc\">\u003C\u002Fa>\u003C\u002Fp>\n","A suite of tools that improve WordPress' CMS capabilities.",10,4074,"2014-10-30T21:20:00.000Z","4.0.38",[140,20,141,142,24],"bsuite","content-management","formatting","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Fbcms\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbcms.zip",{"attackSurface":146,"codeSignals":219,"taintFlows":264,"riskAssessment":265,"analyzedAt":271},{"hooks":147,"ajaxHandlers":215,"restRoutes":216,"shortcodes":217,"cronEvents":218,"entryPointCount":28,"unprotectedCount":28},[148,153,156,161,164,168,171,174,177,181,184,187,191,195,199,203,207,211],{"type":149,"name":150,"callback":151,"file":152,"line":62},"action","admin_init","register_settings","restrict-widgets.php",{"type":149,"name":154,"callback":155,"file":152,"line":13},"admin_menu","admin_menu_options",{"type":149,"name":157,"callback":158,"priority":159,"file":152,"line":160},"wp_loaded","polylang_widgets",6,97,{"type":149,"name":162,"callback":163,"priority":135,"file":152,"line":73},"wp_head","restrict_sidebar_widgets",{"type":149,"name":165,"callback":166,"file":152,"line":167},"plugins_loaded","load_textdomain",99,{"type":149,"name":169,"callback":170,"priority":135,"file":152,"line":113},"widgets_init","load_other_data",{"type":149,"name":169,"callback":172,"priority":93,"file":152,"line":173},"init_restrict_sidebars",101,{"type":149,"name":150,"callback":175,"file":152,"line":176},"load_dynamic_data",102,{"type":149,"name":178,"callback":179,"priority":167,"file":152,"line":180},"in_widget_form","display_admin_widgets_options",103,{"type":149,"name":182,"callback":182,"file":152,"line":183},"admin_enqueue_scripts",104,{"type":149,"name":154,"callback":185,"file":152,"line":186},"manage_widgets_menu",105,{"type":99,"name":188,"callback":189,"priority":135,"file":152,"line":190},"widget_display_callback","display_frontend_widgets",108,{"type":99,"name":192,"callback":193,"priority":135,"file":152,"line":194},"widget_update_callback","update_admin_widgets_options",109,{"type":99,"name":196,"callback":197,"priority":135,"file":152,"line":198},"user_has_cap","manage_widgets_cap",110,{"type":99,"name":200,"callback":201,"priority":135,"file":152,"line":202},"dynamic_sidebar_params","restrict_sidebar_params",111,{"type":99,"name":204,"callback":205,"priority":135,"file":152,"line":206},"plugin_row_meta","plugin_extend_links",112,{"type":99,"name":208,"callback":209,"priority":135,"file":152,"line":210},"plugin_action_links","plugin_settings_link",113,{"type":149,"name":154,"callback":212,"priority":213,"file":152,"line":214},"manage_widgets_menu_fix",999,1631,[],[],[],[],{"dangerousFunctions":220,"sqlUsage":221,"outputEscaping":224,"fileOperations":28,"externalRequests":28,"nonceChecks":104,"capabilityChecks":259,"bundledLibraries":260},[],{"prepared":222,"raw":28,"locations":223},4,[],{"escaped":63,"rawEcho":225,"locations":226},16,[227,230,231,233,235,237,239,241,243,245,247,249,251,253,255,257],{"file":152,"line":228,"context":229},127,"raw output",{"file":152,"line":52,"context":229},{"file":152,"line":232,"context":229},202,{"file":152,"line":234,"context":229},206,{"file":152,"line":236,"context":229},226,{"file":152,"line":238,"context":229},230,{"file":152,"line":240,"context":229},263,{"file":152,"line":242,"context":229},266,{"file":152,"line":244,"context":229},281,{"file":152,"line":246,"context":229},284,{"file":152,"line":248,"context":229},294,{"file":152,"line":250,"context":229},306,{"file":152,"line":252,"context":229},310,{"file":152,"line":254,"context":229},319,{"file":152,"line":256,"context":229},1249,{"file":152,"line":258,"context":229},1261,41,[261],{"name":262,"version":29,"knownCves":263},"Select2",[],[],{"summary":266,"deductions":267},"The restrict-widgets plugin v1.3.1 demonstrates a generally strong security posture based on the provided static analysis. The absence of any AJAX handlers, REST API routes, shortcodes, or cron events contributing to the attack surface is a significant positive. Furthermore, all identified SQL queries utilize prepared statements, and there are no indications of file operations or external HTTP requests, which further limits potential attack vectors. The plugin also incorporates nonce checks and a substantial number of capability checks, suggesting an effort to enforce proper authorization.\n\nHowever, a notable concern arises from the output escaping analysis, where only 11% of the 18 total outputs are properly escaped. This indicates a potential for Cross-Site Scripting (XSS) vulnerabilities if user-supplied data is outputted without adequate sanitization. The lack of any taint analysis results is also noteworthy, though this could be due to the analysis tool's limitations or the plugin's design. The plugin's vulnerability history is clean, with no recorded CVEs, which is a positive indicator. \n\nIn conclusion, while the plugin excels in limiting its attack surface and secure database interactions, the poor output escaping is a significant weakness that needs immediate attention. The clean vulnerability history is reassuring, but the identified code signal concerning output sanitization warrants caution. Addressing the unescaped outputs should be a priority to improve the plugin's overall security.",[268],{"reason":269,"points":270},"Low percentage of properly escaped output",8,"2026-03-16T18:12:08.233Z",{"wat":273,"direct":283},{"assetPaths":274,"generatorPatterns":278,"scriptPaths":279,"versionParams":280},[275,276,277],"\u002Fwp-content\u002Fplugins\u002Frestrict-widgets\u002Fcss\u002Fadmin.css","\u002Fwp-content\u002Fplugins\u002Frestrict-widgets\u002Fjs\u002Fadmin.js","\u002Fwp-content\u002Fplugins\u002Frestrict-widgets\u002Fimages\u002Flogo-dfactory.png",[],[],[281,282],"restrict-widgets\u002Fcss\u002Fadmin.css?ver=","restrict-widgets\u002Fjs\u002Fadmin.js?ver=",{"cssClasses":284,"htmlComments":288,"htmlAttributes":290,"restEndpoints":293,"jsGlobals":294,"shortcodeOutput":298},[285,286,287],"restrict-widgets-settings","df-credits","rw_widgets_options",[289],"\u003C!-- Restrict Widgets -->",[291,292],"data-rw-widget-id","data-rw-widget-options",[],[295,296,297],"RW_Admin","RW_Ajax_Url","RW_Widget_Options",[]]