Skip to content

Instantly share code, notes, and snippets.

@heyfletch
Last active June 12, 2024 19:15
Show Gist options
  • Save heyfletch/7c59d1c0c9c56cbad51ef80290d86df7 to your computer and use it in GitHub Desktop.
Save heyfletch/7c59d1c0c9c56cbad51ef80290d86df7 to your computer and use it in GitHub Desktop.
Make Elementor the Default Editor, Not the WordPress Editor (Gutenberg or Classic)
<?php
/**
* Make Elementor the default editor, not the WordPress Editor (Gutenberg or Classic)
* Clicking the page title will take you to the Elementor editor directly
* Even non-Elementor-edited pages will become Elementor-edited pages now
* You can revert by clicking the "Back to WordPress Editor" button
*
* Author: Joe Fletcher, https://fletcherdigital.com
* URL: https://gist.github.com/heyfletch/7c59d1c0c9c56cbad51ef80290d86df7
* Credit: mjakic https://wordpress.stackexchange.com/questions/178416/how-to-change-the-title-url-on-the-edit-post-screen
* Credit: Aurovrata Venet https://developer.wordpress.org/reference/hooks/post_row_actions/
*/
/** Replace hyperlink in post titles on Page, Post, or Template lists with Elementor's editor link */
add_filter('get_edit_post_link', 'fd_make_elementor_default_edit_link', 10, 3 );
function fd_make_elementor_default_edit_link($link, $post_id, $context) {
// Only relevant in the admin, checks for function that is occasionally missing
if ( is_admin() && function_exists('get_current_screen') ) {
// Get current screen parameters
$screen = get_current_screen();
//check if $screen is object otherwise we may be on an admin page where get_current_screen isn't defined
if( !is_object($screen) )
return;
// Post Types to Edit with Elementor
$post_types_for_elementor = array(
'page',
'post',
'elementor_library',
);
// When we are on a specified post type screen
if ( in_array( $screen->post_type, $post_types_for_elementor ) && $context == 'display' ) {
// Build the Elementor editor link
$elementor_editor_link = admin_url( 'post.php?post=' . $post_id . '&action=elementor' );
return $elementor_editor_link;
} else {
return $link;
}
}
}
/** Add back the default Edit link action in Page and Post list rows */
add_filter( 'page_row_actions', 'fd_add_back_default_edit_link', 10, 2 );
add_filter( 'post_row_actions', 'fd_add_back_default_edit_link', 10, 2 );
function fd_add_back_default_edit_link( $actions, $post ) {
// Build the Elementor edit URL
$elementor_edit_url = admin_url( 'post.php?post=' . $post->ID . '&action=edit' );
// Rewrite the normal Edit link
$actions['edit'] =
sprintf( '<a href="%1$s">%2$s</a>',
esc_url( $elementor_edit_url ),
esc_html( __( 'Default WordPress Editor', 'elementor' ) )
);
return $actions;
}
/** (optional) Remove redundant "Edit with Elementor" link added by Elementor itself */
add_filter( 'page_row_actions', 'fd_remove_default_edit_with_elementor', 99, 2 );
add_filter( 'post_row_actions', 'fd_remove_default_edit_with_elementor', 99, 2 );
function fd_remove_default_edit_with_elementor( $actions, $post ) {
// Rewrite the normal Edit link
unset( $actions['edit_with_elementor'] );
return $actions;
}
/** Alternative: Rewrite just the Edit link, and leave the page title as original */
/** Rewrite the normal Edit link on lists of Pages and replace it with Elementor's edit link */
// add_filter( 'page_row_actions', 'fd_elementor_modify_list_row_actions', 10, 2 );
// add_filter( 'post_row_actions', 'fd_elementor_modify_list_row_actions', 10, 2 );
// function fd_elementor_modify_list_row_actions( $actions, $post ) {
// // Build the Elementor edit URL
// $elementor_edit_url = admin_url( 'post.php?post=' . $post->ID . '&action=elementor' );
// // Rewrite the normal Edit link
// $actions['edit'] =
// sprintf( '<a href="%1$s">%2$s</a>',
// esc_url( $elementor_edit_url ),
// esc_html( __( 'Elementor Editor', 'elementor' ) )
// );
// return $actions;
// }
@heyfletch
Copy link
Author

I've turned this into a simple plugin here: https://github.com/heyfletch/make-elementor-default-editor

@mcold10
Copy link

mcold10 commented Jan 27, 2021

Is this supposed to be in the theme function.php file ?

@heyfletch
Copy link
Author

Yes, you can put that in your functions.php file. I haven't updated this in a while, so be on the look out for issues. Or, you can download a zip of this plugin and install like a normal plugin. I think it is more recently updated.

@mcold10
Copy link

mcold10 commented Jan 27, 2021 via email

@Fatbat
Copy link

Fatbat commented Jan 27, 2021

Likewise, I tried the plugin and script and neither worked for me. The default editor remained the same.

@thiagovidal
Copy link

The plugin worked like a charm. I was a little lazy today so I just downloaded the zip, uploaded to Wordpress by dashboard and activated it after installation. Worked superb. Thanks dude!

@mstudioIL
Copy link

Is it still working?
I need something to make new pages created by "WP ALL IMPORT" to created with Elementor active,
the import is working but I need to active Elementor for each page manually

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment