This post will show you how to programmatically add a Divi Builder page for use as a template in your child theme or custom functionality.
Step 1: Create Your Page Template
First, use the Divi page builder to create your page template. Add the sections and modules you want, and any default text. Save the page.
Step 2: Retrieve the Page Layout Code
To get the code Divi uses to represent the page layout you can use the WordPress revisions mechanism. After saving your page, use the revisions feature in WordPress to retrieve the shortcode structure for the page. You can compare revisions and copy the shortcode content.
Step 3: Add Code
Now add the following PHP code wherever you wish to use it (e.g. in the functions.php file of your child theme):
function divibooster_add_divi_page() {
$title = 'My Custom Divi Page';
$content = <<<END
[et_pb_section fb_built="1"][et_pb_row][et_pb_column type="4_4"][et_pb_text admin_label="Text" background_layout="light" text_orientation="left"]
My custom Divi page content.
[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]
END;
$title = sanitize_text_field($title);
// Check if the page already exists
if (!get_page_by_title($title, 'OBJECT', 'page')) {
$page = array(
'post_title' => $title,
'post_content' => $content,
'post_status' => 'publish',
'post_type' => 'page',
);
$page_id = wp_insert_post($page);
if ($page_id) {
// Enable the Divi Builder on this page
update_post_meta($page_id, '_et_pb_use_builder', 'on');
}
}
}
add_action('admin_init', 'divibooster_add_divi_page');
Related Post: Adding PHP to the Divi Theme
Important Notes
- Efficiency: The
admin_init
hook is used in the example, which runs when the admin interface is initialized. For better efficiency, you may want to change this to suit your needs, such as running it on child theme activation. - Simple Title Check: The code performs a simple check based on the page title to determine if it has already been inserted. If the title is manually changed, the page will be re-inserted. Depending on your use case, you may need a more robust check.
Using the Inserted Page
Once the page is inserted via the code, it can be accessed and used like any normal Divi page. Simply locate the page in your WordPress admin area, edit it with the Divi Builder, and use it as needed.
0 Comments