Last active
June 12, 2024 19:15
-
-
Save heyfletch/7c59d1c0c9c56cbad51ef80290d86df7 to your computer and use it in GitHub Desktop.
Make Elementor the Default Editor, Not the WordPress Editor (Gutenberg or Classic)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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; | |
// } |
mcold10
commented
Jan 27, 2021
via email
I did installed the plugin but the elementor was not working. Classic
editor is still the default editor
…On Wed, Jan 27, 2021 at 6:04 AM Joe Fletcher ***@***.***> wrote:
***@***.**** commented on this gist.
------------------------------
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 <https://github.com/heyfletch/make-elementor-default-editor> and
install like a normal plugin. I think it is more recently updated.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://gist.github.com/7c59d1c0c9c56cbad51ef80290d86df7#gistcomment-3609669>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/APZ6C62A77IACI3ISYRSUQDS4AMPBANCNFSM4JQ3MYJA>
.
Likewise, I tried the plugin and script and neither worked for me. The default editor remained the same.
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!
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