[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fB6LY7X6MRPf-MDZf2BbIOeLo1DADWhapVQ45d5NzP2A":3,"$fv3Hq2SmdC6xKZpzcqNjB5s4hb9kJPw4ImvdI9a_JHCk":305,"$fqpd5nfkk_SVvdwmgsPwmv8NiyAGkPlsK9lx-joNaIc8":310},{"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,"discovery_status":31,"vulnerabilities":32,"developer":33,"crawl_stats":29,"alternatives":38,"analysis":141,"fingerprints":273},"wp-content-layout","Wp Content Layout","1.0","sujit","https:\u002F\u002Fprofiles.wordpress.org\u002Fsujittripathigmailcom\u002F","\u003Cp>Simple WordPress layout plugin, with the help of this plugin you can create a layout for your content and easily can display on your page or post.You can choose Grids in 1,2, 3, 4 column. Select your desired layout and use shortcode to display the grid content on your page post or any where.\u003Cbr \u002F>\nYou can create any number of the rows or layout and you find short code for the every layout .WP content layout is also responsive so your content will be any device friendly.You can use this plugin for google adsense, adsense or display also the any adds or any thing on your page and display any where using the short code.\u003C\u002Fp>\n","Simple WordPress layout plugin, with the help of this plugin you can create a layout for your content and easily can display on your page or post.",10,5078,100,1,"2015-09-13T08:01:00.000Z","4.3.34","3.0.1","",[20,21,22,23,24],"column","custom-layout","layout","responsive-column","wpcolumn","http:\u002F\u002Fdanstring.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-content-layout.zip",85,0,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":34,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"sujittripathigmailcom",30,84,"2026-07-15T08:31:02.489Z",[39,56,77,101,120],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":11,"downloaded":47,"rating":28,"num_ratings":28,"last_updated":48,"tested_up_to":49,"requires_at_least":17,"requires_php":50,"tags":51,"homepage":54,"download_link":55,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"tstfullwidth","TSTFullwidth","1.0.1","Anushka","https:\u002F\u002Fprofiles.wordpress.org\u002Fanushkakr\u002F","\u003Cp>The custom wordpress plugin to make wordpress  theme full width , Simply activate the theme and make your wordpress theme full width.\u003C\u002Fp>\n","The custom wordpress plugin to make wordpress  theme full width , Simply activate the theme and make your wordpress theme full width.",1288,"2019-02-11T13:37:00.000Z","5.0.25","5.6",[21,52,53],"full-width-theme","one-column","http:\u002F\u002Fanushka.pro\u002Fplugins\u002Ftstfullwidth\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftstfullwidth.zip",{"slug":57,"name":58,"version":59,"author":60,"author_profile":61,"description":62,"short_description":63,"active_installs":64,"downloaded":65,"rating":13,"num_ratings":66,"last_updated":67,"tested_up_to":68,"requires_at_least":50,"requires_php":50,"tags":69,"homepage":75,"download_link":76,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"columns-reordering-for-elementor","Columns Reordering For Elementor","1.0.2","James Vu","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpclevel\u002F","\u003Cp>This plugin adds “Display Order” control to help you easily reorder Elementor columns, sections and widgets responsively. No need to duplicate things!\u003C\u002Fp>\n\u003Ch3>How To Use\u003C\u002Fh3>\n\u003Cp>Just click on the column or section you want to reorder. There will be a “Display Order” control on the “Layout” tab which allows you to reorder that column or section responsively.\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FRPWEmYvoUBo?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>Getting Started\u003C\u002Fh3>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 5.2 or greater\u003C\u002Fli>\n\u003Cli>Elementor Page Builder 2.8.0 or greater\u003C\u002Fli>\n\u003Cli>PHP version 5.6 or greater (PHP 7.4 or greater is recommended)\u003C\u002Fli>\n\u003Cli>MySQL version 5.0 or greater (MySQL 5.6 or greater is recommended)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Automatic installation\u003C\u002Fh4>\n\u003Cp>To do an automatic install of this plugin, log in to your WordPress admin dashboard, navigate to the Plugins menu and click Add New.\u003C\u002Fp>\n\u003Cp>In the search field, type “column reordering elementor” and click Search Plugins. Once you’ve found this plugin, you can install it by simply clicking “Install Now”.\u003C\u002Fp>\n\u003Ch4>Manual installation\u003C\u002Fh4>\n\u003Cp>WordPress codex contains \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FManaging_Plugins#Manual_Plugin_Installation\" rel=\"nofollow ugc\">instructions on how to do this here\u003C\u002Fa>.\u003C\u002Fp>\n","This plugin adds \"Display Order\" control to help you easily reorder Elementor columns, sections and widgets responsively. No need to duplicate things!",1000,6924,5,"2022-02-10T12:47:00.000Z","5.9.13",[70,71,72,73,74],"columns-order","elementor","flex-order","responsive-layout","sections-order","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcolumns-reordering-for-elementor","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcolumns-reordering-for-elementor.zip",{"slug":78,"name":79,"version":80,"author":81,"author_profile":82,"description":83,"short_description":84,"active_installs":85,"downloaded":86,"rating":87,"num_ratings":88,"last_updated":89,"tested_up_to":90,"requires_at_least":50,"requires_php":91,"tags":92,"homepage":97,"download_link":98,"security_score":99,"vuln_count":14,"unpatched_count":28,"last_vuln_date":100,"fetched_at":30},"block-editor-bootstrap-blocks","Block Editor Bootstrap Blocks","6.9.2","kubiq","https:\u002F\u002Fprofiles.wordpress.org\u002Fkubiq\u002F","\u003Cp>Fully responsive Bootstrap 5 blocks, components and extends for Gutenberg\u003C\u002Fp>\n\u003Cp>Now you can use Gutenberg editor as full-featured website builder.\u003C\u002Fp>\n\u003Cp>Thanks to Bootstrap 5 – the world’s most popular front-end open source toolkit – you can build your layouts in 6 different breakpoints, so they will work perfectly on each device, no matter if your website visitor is on the phone, tablet, laptop or desktop.\u003C\u002Fp>\n\u003Cp>You can use Bootstrap row and columns blocks with detailed settings for each breakpoint and autocomplete extension for bootstrap classes\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Option to load Bootstrap 5 css to editor from plugin if your theme doesn’t contain it\u003C\u002Fli>\n\u003Cli>Option to load Bootstrap 5 css to frontent from plugin if your theme doesn’t contain it\u003C\u002Fli>\n\u003Cli>Option to load Bootstrap 5 js to frontent from plugin if your theme doesn’t contain it\u003C\u002Fli>\n\u003Cli>Option to automatically add .container class to inner container of fullwidth group or cover block\u003C\u002Fli>\n\u003Cli>Option to remove .is-layout-constrained class from fullwidth group block\u003C\u002Fli>\n\u003Cli>Custom breakpoints control – add, remove or change any breakpoint\u003C\u002Fli>\n\u003Cli>Optimize Bootstrap CSS file by disabling not needed options and parts of Bootstrap\u003C\u002Fli>\n\u003Cli>Bootstrap container block\u003C\u002Fli>\n\u003Cli>\n        Bootstrap row block\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Use quick selector to instantly select row while editing\u003C\u002Fli>\n\u003Cli>Use predefined layouts\u003C\u002Fli>\n\u003Cli>Generate custom layout instantly just by adding columns counts, eg. 2+8+2\u003C\u002Fli>\n\u003Cli>Use any amount of columns\u003C\u002Fli>\n\u003Cli>\n                Use 6 different breakpoints to setup:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Vertical alignment (align-items-*)\u003C\u002Fli>\n\u003Cli>Horizontal alignment (justify-content-*)\u003C\u002Fli>\n\u003Cli>Gutter (g-*)\u003C\u002Fli>\n\u003Cli>Row columns (row-columns-*)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        Bootstrap column block\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Use quick selector to instantly select column while editing\u003C\u002Fli>\n\u003Cli>\n                Use 6 different breakpoints to setup:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Size (col-*)\u003C\u002Fli>\n\u003Cli>Offset (offset-*)\u003C\u002Fli>\n\u003Cli>Order (order-*)\u003C\u002Fli>\n\u003Cli>Vertical alignment (align-self-*)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        Bootstrap accordion block\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Two styles – default and flush\u003C\u002Fli>\n\u003Cli>Always open option\u003C\u002Fli>\n\u003Cli>First open on load option\u003C\u002Fli>\n\u003Cli>Unlimited amount of accordion items\u003C\u002Fli>\n\u003Cli>Unlimited accordion item inner blocks content\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        Bootstrap tabs block\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Three styles – tabs, pills and text\u003C\u002Fli>\n\u003Cli>Possibility to reorder tabs\u003C\u002Fli>\n\u003Cli>Possibility to add and remove tabs\u003C\u002Fli>\n\u003Cli>Unlimited amount of tabs items\u003C\u002Fli>\n\u003Cli>Unlimited tab item inner blocks content\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Component for margin and padding Spacing for any block for 6 different breakpoints\u003C\u002Fli>\n\u003Cli>Component for Display visibility – display per breakpoints, print display, logged in\u002Fout display\u003C\u002Fli>\n\u003Cli>Component for Size – width, min-width, max-width, height, min-height, max-height, aspect-ratio for every breakpoint\u003C\u002Fli>\n\u003Cli>Component for Flex properties – control flex containers and item\u003C\u002Fli>\n\u003Cli>Component for Position properties – control position and z-index\u003C\u002Fli>\n\u003Cli>Component for Snapping for group block, so you can push some content out of container (or just background)\u003C\u002Fli>\n\u003Cli>Component for Alignment, so you can align your text to the left for PC but to the center for mobile\u003C\u002Fli>\n\u003Cli>Component for autocomplete Bootstrap classes\u003C\u002Fli>\n\u003Cli>Extended formats – uppercase, capitalize, lowercase, stretched-link, mark, non-breaking space (nbsp) and soft-hypen (shy) inserter\u003C\u002Fli>\n\u003Cli>Extended shortcuts – shift+alt+[1..7] to switch between paragraph and headings levels – same as in classic editor (tinymce wysiwyg)\u003C\u002Fli>\n\u003C\u002Ful>\n","Fully responsive Bootstrap 5 blocks, components and extends for Gutenberg",900,19317,90,8,"2025-12-17T15:00:00.000Z","6.9.4","7.4",[93,94,95,22,96],"breakpoints","columns","grid","responsive","https:\u002F\u002Fwp-speedup.eu\u002Fshop\u002Fwordpress-plugins\u002Fpro-plugins\u002Fblock-editor-bootstrap-blocks-pro\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fblock-editor-bootstrap-blocks.6.9.2.zip",99,"2024-11-20 00:00:00",{"slug":102,"name":103,"version":104,"author":105,"author_profile":106,"description":107,"short_description":108,"active_installs":109,"downloaded":110,"rating":13,"num_ratings":66,"last_updated":111,"tested_up_to":112,"requires_at_least":113,"requires_php":50,"tags":114,"homepage":118,"download_link":119,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"easy-widget-columns","Easy Widget Columns","1.2.4","Alexis J. Villegas","https:\u002F\u002Fprofiles.wordpress.org\u002Fajvillegas\u002F","\u003Cp>Easy Widget Columns makes it really easy to arrange your widgets in rows of columns. It works by adding a new ‘Column width’ select option at the bottom of your widget’s form that allows you to set a width value for each widget.\u003C\u002Fp>\n\u003Cp>You can define new rows and sub-rows of widget columns with the ‘Widget Row’ widget and the ‘Sub-Row’ widget respectively, allowing you to create complex layouts directly from within your widget area or sidebar.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Genesis Framework users\u003C\u002Fstrong>, be sure to check out the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwidgetized-page-template\u002F\" rel=\"ugc\">Widgetized Page Template\u003C\u002Fa> plugin, which helps you create full-page widget areas to use as a “blank canvas” with Easy Widget Columns.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cstrong>Works With Most Themes\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Easy Widget Columns is optimized for use with the Genesis Framework, but it is not required. It uses the \u003Ca href=\"https:\u002F\u002Fgist.github.com\u002Fstudiopress\u002F5700003\" rel=\"nofollow ugc\">Genesis Framework Column Classes\u003C\u002Fa> to display your widgets in rows of columns. If your theme already incorporates the Genesis Framework Column Classes, or you want to manually add or edit the CSS, you can choose not to load the CSS under ‘Settings’ > ‘Widget Columns’ and rely on your theme’s stylesheet instead. This option is recommended for most Genesis users or those concerned with loading additional assets on their website.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Translation and RTL Ready\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The plugin supports RTL layouts and is translation ready.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Filters for Developers\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The following filters are available for you to take full control of the plugin on your themes.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>ewc_include_widgets\u003C\u002Fcode> – This whitelist filter is used to add the width control ONLY to the specified widgets.\u003C\u002Fli>\n\u003Cli>\u003Ccode>ewc_exclude_widgets\u003C\u002Fcode> – This blacklist filter is used to remove the width control from the specified widgets.\u003C\u002Fli>\n\u003Cli>\u003Ccode>ewc_color_palette\u003C\u002Fcode> – This filter allows you to add a custom color palette to the color picker control in the ‘Widget Row’ widget.\u003C\u002Fli>\n\u003Cli>\u003Ccode>ewc_preset_classes\u003C\u002Fcode> – This filter allows you assign preset CSS classes that display as a checkbox list in the ‘Widget Row’ widget.\u003C\u002Fli>\n\u003Cli>\u003Ccode>ewc_advanced_options\u003C\u002Fcode> – This filter allows you to remove specific or all advanced options from the ‘Widget Row’ widget.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>1. ewc_include_widgets \u002F ewc_exclude_widgets\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Both filters accept the widget’s ID base as parameters. Please note that you cannot use both filters at once. The \u003Ccode>ewc_include_widgets\u003C\u002Fcode> filter will always take precedence over the \u003Ccode>ewc_exclude_widgets\u003C\u002Fcode> filter and overwrite it.\u003C\u002Fp>\n\u003Cp>The examples below demonstrate how you can implement these filters on your theme.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'ewc_include_widgets', 'myprefix_add_ewc_control' );\n\u002F**\n * Filter to add the EWC control to specified widgets.\n *\n * @param  array An empty array.\n * @return array An array containing the widget's ID base.\n *\u002F\nfunction myprefix_add_ewc_control( $ewc_widgets ) {\n\n    $ewc_widgets = array(\n        'meta', \u002F\u002F WP Meta widget\n        'archives', \u002F\u002F WP Archives widget\n        'calendar', \u002F\u002F WP Calendar widget\n        'categories', \u002F\u002F WP Categories widget\n    );\n\n    return $ewc_widgets;\n\n}\n\nadd_filter( 'ewc_exclude_widgets', 'myprefix_remove_ewc_control' );\n\u002F**\n * Filter to remove the EWC control from specified widgets.\n *\n * @param  array An empty array.\n * @return array An array containing the widget's ID base.\n *\u002F\nfunction myprefix_remove_ewc_control( $ewc_widgets ) {\n\n    $ewc_widgets = array(\n        'recent-comments', \u002F\u002F WP Recent Comments widget\n        'recent-posts', \u002F\u002F WP Recent Posts widget\n        'rss', \u002F\u002F WP RSS widget\n        'tag_cloud', \u002F\u002F WP Tag Cloud widget\n    );\n\n    return $ewc_widgets;\n\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>2. ewc_color_palette\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This filter allows you to add a custom color palette to the color picker control in the ‘Widget Row’ widget. It accepts an array of hex color values as parameters.\u003C\u002Fp>\n\u003Cp>The example below demonstrates how you can implement this filter on your theme.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'ewc_color_palette', 'myprefix_ewc_color_palette' );\n\u002F**\n * Filter to edit the color palette in the color picker control.\n *\n * @param  array An empty array.\n * @return array An array containing hex color values.\n *\u002F\nfunction myprefix_ewc_color_palette( $color_palette ) {\n\n    $color_palette = array(\n        '#252724',\n        '#ce6b36',\n        '#31284b',\n        '#a03327',\n        '#3b3e3e',\n        '#67b183',\n    );\n\n    return $color_palette;\n\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>3. ewc_preset_classes\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This filter allows you assign preset CSS classes that display as a checkbox list in the ‘Widget Row’ widget.\u003C\u002Fp>\n\u003Cp>The following example demonstrates how you can implement this filter on your theme.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'ewc_preset_classes', 'myprefix_preset_classes' );\n\u002F**\n * Filter for predefining EWC Widget Row classes.\n *\n * @param  array An empty array.\n * @return array An array containing new values.\n *\u002F\nfunction myprefix_preset_classes( $classes ) {\n\n    $classes = array(\n        'hero',\n        'parallax',\n        'slider',\n        'content',\n    );\n\n    return $classes;\n\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>4. ewc_advanced_options\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This filter allows you to remove specific or all advanced options from the ‘Widget Row’ widget. This can be useful for limiting design functionality on a client website (\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fabout\u002Fphilosophy\u002F#decisions\" rel=\"ugc\">decisions, not options\u003C\u002Fa>).\u003C\u002Fp>\n\u003Cp>The following example demonstrates how to completely remove all advanced options.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F\u002F Remove all advanced options from the Widget Row widget.\nadd_filter( 'ewc_advanced_options', '__return_false' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The example below demonstrates how to disable or enable specific advanced options. The \u003Ccode>display\u003C\u002Fcode> parameter toggles the advanced option and the \u003Ccode>active\u003C\u002Fcode> parameter determines if the panel will display open (1) or closed (0) when the Widget Row widget is first added into a widget area.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'ewc_advanced_options', 'myprefix_display_advanced_options' );\n\u002F**\n * Filter to remove specific advanced options from the Widget Row widget.\n *\n * @param  array An array containing default values.\n * @return array An array containing new values.\n *\u002F\nfunction myprefix_display_advanced_options( $display ) {\n\n    $display = array(\n        'ewc_background' => array(\n            'display' => true,\n            'active' => 1,\n        ),\n        'ewc_margin' => array(\n            'display' => false,\n            'active' => 0,\n        ),\n        'ewc_padding' => array(\n            'display' => false,\n            'active' => 0,\n        ),\n        'ewc_class' => array(\n            'display' => true,\n            'active' => 0,\n        ),\n    );\n\n    return $display;\n\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Easily display widgets in rows of columns.",400,18477,"2020-08-01T19:22:00.000Z","5.5.18","4.6",[115,94,22,116,117],"admin","widget","widget-columns","https:\u002F\u002Fgithub.com\u002Fajvillegas\u002Feasy-widget-columns","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-widget-columns.1.2.4.zip",{"slug":121,"name":122,"version":123,"author":124,"author_profile":125,"description":126,"short_description":127,"active_installs":128,"downloaded":129,"rating":13,"num_ratings":130,"last_updated":131,"tested_up_to":132,"requires_at_least":133,"requires_php":50,"tags":134,"homepage":139,"download_link":140,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"divup-content","DivUp Content","2.7","Themeover","https:\u002F\u002Fprofiles.wordpress.org\u002Fbastywebb\u002F","\u003Cp>\u003Cstrong>NOTE\u003C\u002Fstrong>: This plugin was originally created to solve the issue of splitting classic editor content into divs, using shortcodes. On Sept 27th, 2022, I tested to see how this plugin works with Gutenberg and it actually still works fine (because the divs are rendered AFTER Gutenberg does it’s thing). But it’s worth mentioning that there is a \u003Cstrong>Group\u003C\u002Fstrong> block in Gutenberg that serves the same purpose, and might be more intuitive than working with shortcodes for some users. That said, if you’ve disabled Gutenberg in favour of the classic editor, this plugin is still useful. And although I’m not adding new features, I will fix any bugs people report.\u003C\u002Fp>\n\u003Cp>Now on to how it actually works:\u003C\u002Fp>\n\u003Cp>Separate your WordPress post or page content into divs with (optional) \u003Cstrong>custom CSS classes and ids\u003C\u002Fstrong>. Adding the shortcode \u003Cstrong>[divup]\u003C\u002Fstrong> in between some content will split the content into 2 \u003Cstrong>separate divs\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>You can enter as many [divup] shortcodes to a post or page as you like. Great for creating \u003Cstrong>columns\u003C\u002Fstrong> of content for magazine style websites while keeping shortcode markup to an absolute minimum. DivUp Content never uses inline styles, but it does automatically give divs fiendishly clever classes like first, last, div-1, div-2, div-3, and div-odd, div-even, mul-3, mul-4 (multiple of 1,2,3,4 etc). You can then create your own style rules for the divs in style.css or with \u003Ca href=\"http:\u002F\u002Fthemeover.com\u002F\" rel=\"nofollow ugc\">Microthemer\u003C\u002Fa> (a visual design CSS plugin for customizing WordPress sites).\u003C\u002Fp>\n\u003Ch4>3 Column Example CSS\u003C\u002Fh4>\n\u003Cp>The CSS for a \u003Cstrong>3 column layout\u003C\u002Fstrong> could be:\u003C\u002Fp>\n\u003Cp>.divup-wrap {\u003Cbr \u002F>\n    display: grid;\u003Cbr \u002F>\n    grid-template-columns: repeat(3, 1fr);\u003Cbr \u002F>\n}\u003C\u002Fp>\n\u003Ch4>6 Column Example CSS\u003C\u002Fh4>\n\u003Cp>For a \u003Cstrong>6 column layout\u003C\u002Fstrong> (with gaps), you would just change the CSS to:\u003C\u002Fp>\n\u003Cp>.divup-wrap {\u003Cbr \u002F>\n    display: grid;\u003Cbr \u002F>\n    grid-template-columns: repeat(6, 1fr);\u003Cbr \u002F>\n    gap: 2rem;\u003Cbr \u002F>\n}\u003C\u002Fp>\n\u003Cp>For more complex grid layouts with content spanning different numbers of columns and rows, you may find \u003Ca href=\"http:\u002F\u002Fthemeover.com\u002F\" rel=\"nofollow ugc\">Microthemer\u003C\u002Fa>‘s visual controls for generating the CSS grid rules quite handy. Just select the .divup-wrap element when editing with Microthemer, and then position the grid items however you like using drag and drop.\u003C\u002Fp>\n\u003Ch3>Features added\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>NEWEST\u003C\u002Fstrong>:\u003Cbr \u002F>\nAdded support for adding custom HTML attributes to divs\u002Fspans. Use [startwrap custom=’title: read this’] or [divup custom=”data-src:image.jpg”] (the custom attribute can be applied to both [startwrap] and [divup] shortcodes.\u003Cbr \u002F>\nYou can also do[startwrap custom=’title: read this|required:some value’] (seperate with a | pipe character for multiple)\u003Cbr \u002F>\nWhen using [divup], two divs will be created. To apply custom attributes to the first and second divs use a comma e.g.[divup custom=”data-src:image1.jpg, data-src:image2.jpg”]\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NEWER\u003C\u002Fstrong>:\u003Cbr \u002F>\nAdded support for span elements. Use [startwrap type=’span’].\u003Cbr \u002F>\nAdded support for no superfluous child elements. Use [startwrap parent=0] or [startwrap parent=’false’].\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NEW\u003C\u002Fstrong>: You can also add multiple [startwrap] and [endwrap] shortcodes to control how the divs are wrapped in a wrapper div. This overrides the original auto-wrapper functionality if you choose to use it.**\u003C\u002Fp>\n\u003Cp>The best way to understand how DivUp Content works (including the advanced aspects) is to **copy and paste the ONE of the following dummy content examples below into a post or page and then inspect the html with your browser (Right-click > Inpsect) ** – paying attention to the CSS classes it automatically applies to the divs.\u003C\u002Fp>\n\u003Ch3>Dummy Content 1\u003C\u002Fh3>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup id=’id-a, id-b’ class=’class-a, class-b class-b2′]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup class=’my-class diff ‘]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup id=’my-id’ class=’diff my-class2′]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup class=’diff’]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Ch3>Dummy Content 2\u003C\u002Fh3>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[startwrap class=”my-wrap-class another-wrap-class”]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup id=’id-a, id-b’ class=’class-a, class-b class-b2′]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[endwrap]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[startwrap id=”my-wrap-id” class=”hello-wrap”]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup class=’my-class diff ‘]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup id=’my-id’ class=’diff my-class2′]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup class=’diff’]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[divup]\u003C\u002Fp>\n\u003Cp>Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page. Some content on this page.\u003C\u002Fp>\n\u003Cp>[endwrap]\u003C\u002Fp>\n","Wrap divs around classic editor content using divup shortcodes. Also works for Gutenberg, but you may prefer to use the group block.",300,21892,4,"2022-09-27T10:24:00.000Z","6.0.11","2.8",[135,136,94,137,138],"classic-editor","column-layout","css-grid","split","https:\u002F\u002Fen-gb.wordpress.org\u002Fplugins\u002Fdivup-content\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdivup-content.zip",{"attackSurface":142,"codeSignals":158,"taintFlows":233,"riskAssessment":260,"analyzedAt":272},{"hooks":143,"ajaxHandlers":150,"restRoutes":151,"shortcodes":152,"cronEvents":157,"entryPointCount":14,"unprotectedCount":28},[144],{"type":145,"name":146,"callback":147,"file":148,"line":149},"action","admin_menu","wcl_wpcontentlayout","layout.php",14,[],[],[153],{"tag":154,"callback":155,"file":148,"line":156},"wcl_wp_content_layout","wcl_wp_content_layout_shortcode",570,[],{"dangerousFunctions":159,"sqlUsage":160,"outputEscaping":162,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":232},[],{"prepared":28,"raw":28,"locations":161},[],{"escaped":28,"rawEcho":163,"locations":164},33,[165,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230],{"file":148,"line":166,"context":167},128,"raw output",{"file":148,"line":169,"context":167},133,{"file":148,"line":171,"context":167},138,{"file":148,"line":173,"context":167},142,{"file":148,"line":175,"context":167},148,{"file":148,"line":177,"context":167},149,{"file":148,"line":179,"context":167},151,{"file":148,"line":181,"context":167},163,{"file":148,"line":183,"context":167},164,{"file":148,"line":185,"context":167},165,{"file":148,"line":187,"context":167},167,{"file":148,"line":189,"context":167},178,{"file":148,"line":191,"context":167},179,{"file":148,"line":193,"context":167},180,{"file":148,"line":195,"context":167},181,{"file":148,"line":197,"context":167},183,{"file":148,"line":199,"context":167},194,{"file":148,"line":201,"context":167},195,{"file":148,"line":203,"context":167},196,{"file":148,"line":205,"context":167},197,{"file":148,"line":207,"context":167},198,{"file":148,"line":209,"context":167},200,{"file":148,"line":211,"context":167},330,{"file":148,"line":213,"context":167},337,{"file":148,"line":215,"context":167},342,{"file":148,"line":217,"context":167},347,{"file":148,"line":219,"context":167},351,{"file":148,"line":221,"context":167},450,{"file":148,"line":223,"context":167},454,{"file":148,"line":225,"context":167},460,{"file":148,"line":227,"context":167},461,{"file":148,"line":229,"context":167},467,{"file":148,"line":231,"context":167},468,[],[234,251],{"entryPoint":235,"graph":236,"unsanitizedCount":130,"severity":250},"wcl_wpcontentlayout_add_layout (layout.php:36)",{"nodes":237,"edges":247},[238,242],{"id":239,"type":240,"label":241,"file":148,"line":179},"n0","source","$_POST['id'] (x4)",{"id":243,"type":244,"label":245,"file":148,"line":179,"wp_function":246},"n1","sink","echo() [XSS]","echo",[248],{"from":239,"to":243,"sanitized":249},false,"medium",{"entryPoint":252,"graph":253,"unsanitizedCount":130,"severity":259},"\u003Clayout> (layout.php:0)",{"nodes":254,"edges":257},[255,256],{"id":239,"type":240,"label":241,"file":148,"line":179},{"id":243,"type":244,"label":245,"file":148,"line":179,"wp_function":246},[258],{"from":239,"to":243,"sanitized":249},"low",{"summary":261,"deductions":262},"The \"wp-content-layout\" v1.0 plugin exhibits a mixed security posture. On the positive side, it has a very small attack surface, with only one shortcode identified as an entry point and no AJAX handlers, REST API routes, or cron events that require authentication checks. Furthermore, the plugin demonstrates good practices by using prepared statements for all SQL queries and avoiding file operations and external HTTP requests. However, significant concerns arise from the lack of proper output escaping, with 0% of outputs being correctly escaped. This indicates a high risk of Cross-Site Scripting (XSS) vulnerabilities, where user-supplied data could be injected into the page's output.\n\nThe taint analysis reveals that all analyzed flows involve unsanitized paths, although no critical or high severity issues were flagged. This, combined with the complete absence of nonce checks and capability checks, suggests that user-supplied data is not being adequately validated or authorized before being processed, potentially leading to unintended actions or information disclosure. The vulnerability history is clean, with no recorded CVEs, which is a positive indicator of past security diligence or simply a lack of past discovery. However, the current code quality issues, particularly the unescaped output and lack of authorization checks, present immediate risks that are not reflected in the historical data.\n\nIn conclusion, while the plugin's minimal attack surface and use of prepared statements are strengths, the pervasive lack of output escaping and the absence of security checks like nonces and capability checks represent critical weaknesses. These vulnerabilities could be exploited to execute arbitrary JavaScript in the context of a user's session, making it essential to address these code quality issues promptly to improve the plugin's overall security.",[263,265,268,270],{"reason":264,"points":88},"0% output escaping",{"reason":266,"points":267},"No nonce checks",7,{"reason":269,"points":267},"No capability checks",{"reason":271,"points":130},"Unsanitized paths in taint flows","2026-03-17T01:08:54.404Z",{"wat":274,"direct":282},{"assetPaths":275,"generatorPatterns":279,"scriptPaths":280,"versionParams":281},[276,277,278],"\u002Fwp-content\u002Fplugins\u002Fwp-content-layout\u002Fcss\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Fwp-content-layout\u002Fcss\u002Fgridcss.css","\u002Fwp-content\u002Fplugins\u002Fwp-content-layout\u002Fjs\u002Fbox.js",[],[278],[],{"cssClasses":283,"htmlComments":295,"htmlAttributes":296,"restEndpoints":301,"jsGlobals":302,"shortcodeOutput":304},[284,285,286,287,288,289,290,291,292,293,285,294],"main_container_top","col3","sel_image","main_container","col12","title_box","inner_text","layout_button","col6","col4","last",[],[297,298,299,300],"onclick=\"return getValue(1)\"","onclick=\"return getValue(2)\"","onclick=\"return getValue(3)\"","onclick=\"return getValue(4)\"",[],[303],"getValue",[],{"error":306,"url":307,"statusCode":308,"statusMessage":309,"message":309},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fwp-content-layout\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":28,"versions":311},[]]