{"id":278838,"date":"2026-02-12T08:33:57","date_gmt":"2026-02-12T08:33:57","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dp-pagecraft\/"},"modified":"2026-02-12T08:33:45","modified_gmt":"2026-02-12T08:33:45","slug":"dplab-pagestudio","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/dplab-pagestudio\/","author":23440095,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.12","stable_tag":"1.0.12","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"DPLab Page Studio","header_author":"DP Lab","header_description":"A powerful visual layout builder for WordPress.","assets_banners_color":"41919f","last_updated":"2026-02-12 08:33:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/dplab.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":195,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.12":{"tag":"1.0.12","author":"dplabapp","date":"2026-02-12 08:33:45"}},"upgrade_notice":{"1.0.12":"<p>Categories widget: Use category slugs (e.g., &quot;news, tutorials&quot;) instead of IDs.<\/p>","1.0.11":"<p>Bug fixes and coding standards improvements.<\/p>","1.0.10":"<p>Major update: Plugin renamed to DPLab Page Studio. Includes Migration Wizard, Sticky Columns, and bug fixes.<\/p>","1.0.9":"<p>Critical fix: Resolves CSS display issue introduced in 1.0.8.<\/p>","1.0.8":"<p>Code quality improvements for WordPress.org compliance. No functional changes.<\/p>","1.0.7":"<p>New feature: Blog List can now automatically show posts from the current category\/tag on archive pages.<\/p>","1.0.6":"<p>Shortcode renamed to [dplab_pagestudio_layout]. Update any existing shortcodes in your content.<\/p>","1.0.5":"<p>CRITICAL: Fixes broken frontend layouts and external widget rendering. Strongly recommended for all users.<\/p>","1.0.4":"<p>Bug fixes and UI improvements for color settings. Recommended upgrade.<\/p>","1.0.3":"<p>New Live Preview feature with real-time updates. Recommended upgrade for all users.<\/p>","1.0.1":"<p>Bug fix for column width issues. Recommended for all users.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3459657,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3459657,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3459657,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3459657,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.12"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3459657,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3459657,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3459657,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3459657,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Visual layout builder with drag-and-drop interface","2":"Widget sidebar with 17 widget types","3":"Plugin settings page for template overrides","4":"Responsive column layouts (1-4 columns)","5":"Widget customization panel","6":"Global design settings"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3938,11518,1084,975,10633],"plugin_category":[43],"plugin_contributors":[255712],"plugin_business_model":[],"class_list":["post-278838","plugin","type-plugin","status-publish","hentry","plugin_tags-drag-and-drop","plugin_tags-layout-builder","plugin_tags-page-builder","plugin_tags-template","plugin_tags-visual-builder","plugin_category-customization","plugin_contributors-dplabapp","plugin_committers-dplabapp"],"banners":{"banner":"https:\/\/ps.w.org\/dplab-pagestudio\/assets\/banner-772x250.png?rev=3459657","banner_2x":"https:\/\/ps.w.org\/dplab-pagestudio\/assets\/banner-1544x500.png?rev=3459657","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dplab-pagestudio\/assets\/icon-128x128.png?rev=3459657","icon_2x":"https:\/\/ps.w.org\/dplab-pagestudio\/assets\/icon-256x256.png?rev=3459657","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/dplab-pagestudio\/assets\/screenshot-1.png?rev=3459657","caption":"Visual layout builder with drag-and-drop interface"},{"src":"https:\/\/ps.w.org\/dplab-pagestudio\/assets\/screenshot-2.png?rev=3459657","caption":"Widget sidebar with 17 widget types"},{"src":"https:\/\/ps.w.org\/dplab-pagestudio\/assets\/screenshot-3.png?rev=3459657","caption":"Plugin settings page for template overrides"},{"src":"https:\/\/ps.w.org\/dplab-pagestudio\/assets\/screenshot-4.png?rev=3459657","caption":"Responsive column layouts (1-4 columns)"}],"raw_content":"<!--section=description-->\n<p><strong>DPLab Page Studio<\/strong> is a powerful visual layout builder that lets you create stunning page layouts without writing any code. With an intuitive drag-and-drop interface, you can design custom layouts for your homepage, blog posts, and any page on your WordPress site.<\/p>\n\n<p><strong>100% Free<\/strong> - All features included, no premium upsells, no hidden costs.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Visual Drag &amp; Drop Builder<\/strong> - Intuitive interface for creating layouts<\/li>\n<li><strong>Live Preview<\/strong> - See changes instantly as you edit<\/li>\n<li><strong>Interactive Editing<\/strong> - Click-to-edit interface that behaves like the real site<\/li>\n<li><strong>Flexible Column System<\/strong> - 1, 2, 3, or 4 column layouts with custom widths<\/li>\n<li><strong>17 Built-in Widgets<\/strong> - Everything you need to build professional layouts<\/li>\n<li><strong>Responsive Design<\/strong> - Automatically adapts to mobile, tablet, and desktop<\/li>\n<li><strong>Template Override<\/strong> - Use custom layouts for homepage and single posts<\/li>\n<li><strong>Shortcode Support<\/strong> - Embed layouts anywhere with <code>[dplab_pagestudio_layout id=\"X\"]<\/code><\/li>\n<li><strong>Widget Customization<\/strong> - Card styles, colors, padding, borders, and more<\/li>\n<li><strong>Global Design Settings<\/strong> - Colors, typography, and container width<\/li>\n<li><strong>External Widget API<\/strong> - Extensible for plugins like DP Slider Pro, DP Gallery Pro, and DP Contact Form Pro<\/li>\n<\/ul>\n\n<h4>17 Built-in Widgets<\/h4>\n\n<p><strong>Content Widgets:<\/strong>\n* Text (Rich Editor)\n* Heading (H1-H6)\n* List\n* Quote<\/p>\n\n<p><strong>Media Widgets:<\/strong>\n* Image\n* Video (YouTube\/Vimeo embed)\n* Icon\n* Button<\/p>\n\n<p><strong>Layout Widgets:<\/strong>\n* Spacer\n* Divider\n* Layout (Nested layouts)\n* HTML Code<\/p>\n\n<p><strong>Dynamic Widgets:<\/strong>\n* Blog List\n* Current Post\n* Categories\n* Menu\n* Social Share<\/p>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li>Creating unique homepage layouts<\/li>\n<li>Designing custom single post templates<\/li>\n<li>Building landing pages<\/li>\n<li>Creating portfolio pages<\/li>\n<li>Customizing blog post layouts<\/li>\n<li>Adding structured content sections<\/li>\n<\/ul>\n\n<h4>Global Design Settings<\/h4>\n\n<p>Configure site-wide design settings:\n* <strong>Colors<\/strong> - Primary, Secondary, Text, Background, Heading, Accent, H1\n* <strong>Typography<\/strong> - Heading font, Body font, Base font size\n* <strong>Layout<\/strong> - Container width (default 1200px)<\/p>\n\n<p>All colors are available as CSS variables for consistent styling.<\/p>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li><strong>Create a Layout<\/strong> - Use the visual builder to design your layout<\/li>\n<li><strong>Add Widgets<\/strong> - Drag and drop text, images, buttons, and more<\/li>\n<li><strong>Customize Appearance<\/strong> - Style your widgets with colors, padding, borders<\/li>\n<li><strong>Publish &amp; Use<\/strong> - Embed with shortcode or set as template override<\/li>\n<\/ol>\n\n<h4>Developer Friendly<\/h4>\n\n<ul>\n<li>Clean, well-documented code<\/li>\n<li>WordPress Coding Standards compliant<\/li>\n<li>Extensible architecture with External Widget API<\/li>\n<li>REST API for programmatic access<\/li>\n<li>CSS variables for theme integration<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/dplab.app\/docs\">Documentation<\/a> | <a href=\"https:\/\/dplab.app\">Support<\/a><\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin uses third-party services for social sharing and video embedding functionality. These services are only accessed when the user actively uses specific widgets.<\/p>\n\n<h4>Social Share Widget<\/h4>\n\n<p>When users click on social sharing buttons, they are redirected to the respective platform's sharing page. The following data is sent:<\/p>\n\n<p><strong>Facebook<\/strong>\n* Data sent: Current page URL\n* When: User clicks the Facebook share button\n* Service: <a href=\"https:\/\/www.facebook.com\/terms.php\">Facebook Terms<\/a> | <a href=\"https:\/\/www.facebook.com\/privacy\/policy\/\">Privacy Policy<\/a><\/p>\n\n<p><strong>X (Twitter)<\/strong>\n* Data sent: Current page URL and title\n* When: User clicks the X\/Twitter share button\n* Service: <a href=\"https:\/\/twitter.com\/tos\">X Terms<\/a> | <a href=\"https:\/\/twitter.com\/privacy\">Privacy Policy<\/a><\/p>\n\n<p><strong>LinkedIn<\/strong>\n* Data sent: Current page URL and title\n* When: User clicks the LinkedIn share button\n* Service: <a href=\"https:\/\/www.linkedin.com\/legal\/user-agreement\">LinkedIn Terms<\/a> | <a href=\"https:\/\/www.linkedin.com\/legal\/privacy-policy\">Privacy Policy<\/a><\/p>\n\n<p><strong>WhatsApp<\/strong>\n* Data sent: Current page URL and title\n* When: User clicks the WhatsApp share button\n* Service: <a href=\"https:\/\/www.whatsapp.com\/legal\/terms-of-service\">WhatsApp Terms<\/a> | <a href=\"https:\/\/www.whatsapp.com\/legal\/privacy-policy\">Privacy Policy<\/a><\/p>\n\n<p><strong>Telegram<\/strong>\n* Data sent: Current page URL and title\n* When: User clicks the Telegram share button\n* Service: <a href=\"https:\/\/telegram.org\/tos\">Telegram Terms<\/a> | <a href=\"https:\/\/telegram.org\/privacy\">Privacy Policy<\/a><\/p>\n\n<p><strong>Pinterest<\/strong>\n* Data sent: Current page URL and title\n* When: User clicks the Pinterest share button\n* Service: <a href=\"https:\/\/policy.pinterest.com\/terms-of-service\">Pinterest Terms<\/a> | <a href=\"https:\/\/policy.pinterest.com\/privacy-policy\">Privacy Policy<\/a><\/p>\n\n<p><strong>Instagram<\/strong>\n* Data sent: None (opens Instagram app\/website)\n* When: User clicks the Instagram share button\n* Service: <a href=\"https:\/\/help.instagram.com\/581066165581870\">Instagram Terms<\/a> | <a href=\"https:\/\/help.instagram.com\/155833707900388\">Privacy Policy<\/a><\/p>\n\n<h4>Video Embed Widget<\/h4>\n\n<p>When embedding videos, the plugin loads content from external video platforms:<\/p>\n\n<p><strong>YouTube<\/strong>\n* Data sent: Video ID, user's IP address (by YouTube)\n* When: A YouTube video is embedded and displayed\n* Service: <a href=\"https:\/\/www.youtube.com\/t\/terms\">YouTube Terms<\/a> | <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a><\/p>\n\n<p><strong>Vimeo<\/strong>\n* Data sent: Video ID, user's IP address (by Vimeo)\n* When: A Vimeo video is embedded and displayed\n* Service: <a href=\"https:\/\/vimeo.com\/terms\">Vimeo Terms<\/a> | <a href=\"https:\/\/vimeo.com\/privacy\">Privacy Policy<\/a><\/p>\n\n<h4>Important Notes<\/h4>\n\n<ul>\n<li>No data is sent automatically. Social sharing only occurs when users actively click share buttons.<\/li>\n<li>Video embeds load content from YouTube\/Vimeo servers when the page is viewed.<\/li>\n<li>This plugin does not store or process any personal data from these services.<\/li>\n<li>Site administrators should update their privacy policy to inform visitors about embedded content and social sharing features.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Log in to your WordPress admin panel<\/li>\n<li>Navigate to Plugins &gt; Add New<\/li>\n<li>Search for \"DPLab Page Studio\"<\/li>\n<li>Click \"Install Now\" and then \"Activate\"<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Log in to your WordPress admin panel<\/li>\n<li>Navigate to Plugins &gt; Add New &gt; Upload Plugin<\/li>\n<li>Choose the ZIP file and click \"Install Now\"<\/li>\n<li>Activate the plugin<\/li>\n<\/ol>\n\n<h4>After Activation<\/h4>\n\n<ol>\n<li>Go to <strong>DPLab Page Studio<\/strong> in your WordPress admin menu<\/li>\n<li>Click \"Create New Layout\" to start building<\/li>\n<li>Use the drag-and-drop interface to add rows and widgets<\/li>\n<li>Save your layout and use it with the shortcode or template override<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20it%20really%20100%25%20free%3F\"><h3>Is it really 100% free?<\/h3><\/dt>\n<dd><p>Yes! DPLab Page Studio is completely free with all 17 widgets, responsive design, template override, and global settings. No hidden premium features.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20layout%20to%20my%20homepage%3F\"><h3>How do I add a layout to my homepage?<\/h3><\/dt>\n<dd><p>Go to <strong>DPLab Page Studio &gt; Page Layouts<\/strong> and select your layout from the \"Layout for Homepage\" dropdown. Save the settings and your homepage will use the custom layout.<\/p><\/dd>\n<dt id=\"how%20do%20i%20use%20a%20custom%20layout%20for%20blog%20posts%3F\"><h3>How do I use a custom layout for blog posts?<\/h3><\/dt>\n<dd><p>Go to <strong>DPLab Page Studio &gt; Page Layouts<\/strong>, select your layout from \"Layout for Single Posts\" dropdown. Make sure your layout includes a \"Current Post\" widget to display the post content.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20a%20layout%20in%20a%20page%20or%20post%3F\"><h3>Can I embed a layout in a page or post?<\/h3><\/dt>\n<dd><p>Yes! Use the shortcode <code>[dplab_pagestudio_layout id=\"X\"]<\/code> where X is your layout ID. You can find the layout ID in the Layout Manager.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20responsive%3F\"><h3>Is the plugin responsive?<\/h3><\/dt>\n<dd><p>Absolutely! All layouts automatically adapt to mobile, tablet, and desktop screens with smart column stacking on smaller devices.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20widget%20styles%3F\"><h3>Can I customize widget styles?<\/h3><\/dt>\n<dd><p>Yes! Each widget has a \"General Settings\" panel where you can customize:\n* Background color\n* Border color and radius\n* Padding and margins\n* Text color\n* Cover images\n* Custom CSS classes<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>DPLab Page Studio is designed to work with any well-coded WordPress theme. The layouts render using clean HTML and CSS that adapts to your theme's styling.<\/p><\/dd>\n<dt id=\"is%20there%20a%20limit%20to%20how%20many%20layouts%20i%20can%20create%3F\"><h3>Is there a limit to how many layouts I can create?<\/h3><\/dt>\n<dd><p>No! Create as many layouts as you need for different pages, posts, or sections of your site.<\/p><\/dd>\n<dt id=\"can%20i%20extend%20it%20with%20custom%20widgets%3F\"><h3>Can I extend it with custom widgets?<\/h3><\/dt>\n<dd><p>Yes! PageStudio has an external widget API. Plugins like DP Slider Pro, DP Gallery Pro, and DP Contact Form Pro add new widgets seamlessly. Developers can register custom widgets via PHP.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Changed: Categories widget now uses slugs instead of IDs for include\/exclude fields<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Fix: Resolved coding standards issues for WordPress.org compliance<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>New: Sticky Column option (with offset control)<\/li>\n<li>New: Custom Mobile Size controls (width, height, object-fit) for Image Widget<\/li>\n<li>New: ID attribute support for Image Widget<\/li>\n<li>Fix: Z-index improvements for editor modals<\/li>\n<li>Fix: Sticky Column offset adjustment for Admin Bar<\/li>\n<li>Fix: Text Widget paragraph spacing<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Fix: Critical regression - CSS appearing as text on frontend (wp_kses_post stripping style tags)<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Improved: WordPress Plugin Check compliance - all coding standards errors resolved<\/li>\n<li>Fixed: Text domain corrected from 'PageStudio' to 'dp-PageStudio' across all files<\/li>\n<li>Fixed: Proper output escaping (esc_html__, wp_kses_post, esc_url, esc_attr_e)<\/li>\n<li>Fixed: Input sanitization with wp_unslash() before sanitize functions<\/li>\n<li>Fixed: Resource versioning in wp_enqueue_style() calls<\/li>\n<li>Removed: Debug code (error_log, ini_set, error_reporting)<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>New: Blog List widget - \"Use current archive category\" option to automatically display posts from the current category or tag on archive pages<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Changed: Shortcode renamed from [custom_layout] to [dplab_pagestudio_layout] to avoid conflicts with other plugins<\/li>\n<li>Improved: Updated readme with complete 17 widgets documentation<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fix: Critical bug causing incorrect row\/column nesting in frontend layouts<\/li>\n<li>Fix: External widgets (Slider Pro, Gallery Pro) not rendering on frontend<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fix: Critical error with external widgets<\/li>\n<li>Improved: Color settings now include \"Clear\" button and hex input<\/li>\n<li>New: H1 Color setting<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>New: Live Preview - See changes in real-time as you edit<\/li>\n<li>New: Interactive Preview Mode - Test links and sliders directly in the editor<\/li>\n<li>New: Draggable Settings Panel - Move the settings window anywhere on screen<\/li>\n<li>Improved: Silent saving mechanism for smoother experience<\/li>\n<li>Fix: Solved infinite update loop in preview<\/li>\n<li>Fix: Corrected \"Save\" button reverting changes bug<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Editor layout issues<\/li>\n<li>Improvement: Better sidebar handling<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<li>Added shortcode support<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First Version<\/li>\n<\/ul>","raw_excerpt":"A powerful FREE visual layout builder for WordPress with drag-and-drop interface, 17 widgets, and responsive design.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/278838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=278838"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dplabapp"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=278838"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=278838"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=278838"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=278838"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=278838"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=278838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}