<?php | |
/** | |
* Hide editor on specific pages. | |
* | |
*/ | |
add_action( 'admin_init', 'hide_editor' ); | |
function hide_editor() { | |
// Get the Post ID. | |
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ; | |
if( !isset( $post_id ) ) return; | |
// Hide the editor on the page titled 'Homepage' | |
$homepgname = get_the_title($post_id); | |
if($homepgname == 'Homepage'){ | |
remove_post_type_support('page', 'editor'); | |
} | |
// Hide the editor on a page with a specific page template | |
// Get the name of the Page Template file. | |
$template_file = get_post_meta($post_id, '_wp_page_template', true); | |
if($template_file == 'my-page-template.php'){ // the filename of the page template | |
remove_post_type_support('page', 'editor'); | |
} | |
} |
This comment has been minimized.
This comment has been minimized.
nimmolo
commented
Jun 3, 2014
Hi Ramsey, If you modify the top of your function it resolves the errors. for reference [http://stackoverflow.com/questions/8463126/how-to-get-post-id-in-wordpress-admin]
|
This comment has been minimized.
This comment has been minimized.
gnowland
commented
Jun 27, 2014
@nimmolo you rock man, Ramsey's code is in like 8 google hits and only you were diligent enough to catch the debug error and had the fix. Wish you could push this to everyone! |
This comment has been minimized.
This comment has been minimized.
juliancoates
commented
Mar 16, 2015
thanks, really useful! |
This comment has been minimized.
This comment has been minimized.
atomtigerzoo
commented
Jul 16, 2015
Nice & thank you :) I forked your gist giving it some the functionality to define the page-title and page-templates other than directly in the function: https://gist.github.com/atomtigerzoo/0dd49ed9ca67ec111465 |
This comment has been minimized.
This comment has been minimized.
Frique
commented
Jan 10, 2016
A cleaner way to get the template file (without relying on global variables and custom get_post_meta calls) is using get_page_template() which will return the full path that you can then filter to only get the php file:
|
This comment has been minimized.
This comment has been minimized.
glennnall
commented
Feb 16, 2016
thanks both of you - just stuck this in my child-theme functions.php (with admin_head) and it did just what i wanted it to. awesome. |
This comment has been minimized.
This comment has been minimized.
bryanwillis
commented
Feb 28, 2016
@nimmolo is correct here that the admin_init hook is too early. Not only because of the errors but certain metaboxes will not get removed. The preferred hook is actually |
This comment has been minimized.
This comment has been minimized.
Hollyw00d
commented
Mar 4, 2016
This worked perfectly for me. Thank you ramseyp! |
This comment has been minimized.
This comment has been minimized.
praghavaji
commented
Jun 24, 2016
Thanks. Very awesome. |
This comment has been minimized.
This comment has been minimized.
olirabt
commented
Sep 23, 2016
Hello, thanks, this works perfectly. However, I was unable to disable the editor also on the translated pages in my admin. I use polylang plugin in order to translate my pages. The editor is disabled on the original page, but it is abled on the pages I use for traductions. |
This comment has been minimized.
This comment has been minimized.
cramdesign
commented
Oct 8, 2016
possibly a cleaner way still to get the name of the template file:
|
This comment has been minimized.
This comment has been minimized.
RyuuZaky
commented
Nov 12, 2016
Thanks bro, really useful |
This comment has been minimized.
This comment has been minimized.
endymion1818
commented
Mar 23, 2017
Thanks to both of you, really helped me too. |
This comment has been minimized.
This comment has been minimized.
jordanboston
commented
May 26, 2017
•
Thanks! This seemed to work well for me, from the combined comments above:
It seems simpler, and I have not seen any issues. |
This comment has been minimized.
This comment has been minimized.
WebAssembler
commented
Jun 16, 2017
@jordanboston you have written $template file twice on line 3:
|
This comment has been minimized.
This comment has been minimized.
bluefractals
commented
Mar 25, 2018
Is there a way to move it below other fields on the page? I'm using Advanced Custom Fields and would like to move the default content area below the ACF fields. |
This comment has been minimized.
This comment has been minimized.
billyranario
commented
Apr 19, 2018
Very helpful! |
This comment has been minimized.
This comment has been minimized.
roborracle
commented
May 30, 2018
@jordanboston - that worked perfectly - thank you. |
This comment has been minimized.
This comment has been minimized.
ghost
commented
Jun 18, 2018
Thanks to @ramseyp, @jordanboston and @WebAssembler - works great. |
This comment has been minimized.
This comment has been minimized.
edurodriguesdias
commented
Aug 2, 2018
Thanks bro! |
This comment has been minimized.
This comment has been minimized.
ncole458
commented
Sep 11, 2018
•
Nice one thanks! I needed to add |
This comment has been minimized.
This comment has been minimized.
MikeNGarrett
commented
Jan 4, 2019
Make sure you check to see if you're on the right admin screen by using |
This comment has been minimized.
nimmolo commentedAug 25, 2013
big up, many thanks. this works great.