Seiten-Editor ausblenden, wenn eine bestimmte Vorlage ausgewählt ist?

Wie blende ich den Seiteneditor (WYSIWYG-Editor) aus, wenn die aktuelle Seite auf eine bestimmte Vorlage eingestellt ist.

Ich habe den folgenden Code bereits in benutzerdefinierten Meta-Boxen hinzufügen, wenn bestimmte Vorlagen ausgewählt sind:

add_action('admin_init','my_meta_init'); function my_meta_init() { $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID']; $template_file = get_post_meta($post_id, '_wp_page_template', TRUE); $savemeta = true; if ($template_file == 'template-page-2quotes.php') { add_meta_box('main_quote_meta-meta', 'Top Quote', 'main_quote_meta', 'page', 'side', 'low'); add_meta_box('sub_quote_meta-meta', 'Right Hand Side Quote', 'sub_quote_meta', 'page', 'normal', 'low'); } elseif ($template_file == 'template-page-1quote.php') { add_meta_box('sub_quote_meta-meta', 'Right Hand Side Quote', 'sub_quote_meta', 'page', 'normal', 'low'); } elseif ($template_file == 'template-page-factsnfigures.php') { add_meta_box('facts_n_figures-meta', 'Amount Raised', 'facts_n_figures', 'page', 'normal', 'low'); } elseif ($template_file == 'template-page-fundraising.php') { add_meta_box('fundraising_ideas-meta', 'Fundraising Ideas', 'fundraising_ideas', 'page', 'side', 'low'); } else { $savemeta = false; } if($savemeta == true) { add_action('save_post','my_meta_save'); } } 

Ich möchte zum Beispiel, dass der Editor entfernt wird, wenn $template_file == 'template-page-2quotes.php'

Bearbeiten (Arbeitscode):

 add_action('admin_init','my_meta_init'); function my_meta_init() { $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID']; $template_file = get_post_meta($post_id, '_wp_page_template', TRUE); $savemeta = true; $hideeditor = false; if ($template_file == 'template-page-2quotes.php') { add_meta_box('main_quote_meta-meta', 'Top Quote', 'main_quote_meta', 'page', 'side', 'low'); add_meta_box('sub_quote_meta-meta', 'Right Hand Side Quote', 'sub_quote_meta', 'page', 'normal', 'low'); } elseif ($template_file == 'template-page-1quote.php') { add_meta_box('sub_quote_meta-meta', 'Right Hand Side Quote', 'sub_quote_meta', 'page', 'normal', 'low'); } elseif ($template_file == 'template-page-factsnfigures.php') { add_meta_box('facts_n_figures-meta', 'Amount Raised', 'facts_n_figures', 'page', 'normal', 'low'); } elseif ($template_file == 'template-page-fundraising.php') { add_meta_box('fundraising_ideas-meta', 'Fundraising Ideas', 'fundraising_ideas', 'page', 'side', 'low'); } elseif($template_file == 'template-page-news.php') { $hideeditor = true; $savemeta = false; } else { $savemeta = false; } if($savemeta == true) { add_action('save_post','my_meta_save'); } if($hideeditor == true) { add_action('admin_print_styles', 'admin_no_editor_style'); } } function admin_no_editor_style() { echo "#postdivrich{display:none;}"; } 

Solutions Collecting From Web of "Seiten-Editor ausblenden, wenn eine bestimmte Vorlage ausgewählt ist?"

 add_action( 'init', 'remove_editor_init' ); function remove_editor_init() { // If not in the admin, return. if ( ! is_admin() ) { return; } // Get the post ID on edit post with filter_input super global inspection. $current_post_id = filter_input( INPUT_GET, 'post', FILTER_SANITIZE_NUMBER_INT ); // Get the post ID on update post with filter_input super global inspection. $update_post_id = filter_input( INPUT_POST, 'post_ID', FILTER_SANITIZE_NUMBER_INT ); // Check to see if the post ID is set, else return. if ( isset( $current_post_id ) ) { $post_id = absint( $current_post_id ); } else if ( isset( $update_post_id ) ) { $post_id = absint( $update_post_id ); } else { return; } // Don't do anything unless there is a post_id. if ( isset( $post_id ) ) { // Get the template of the current post. $template_file = get_post_meta( $post_id, '_wp_page_template', true ); // Example of removing page editor for page-your-template.php template. if ( 'page-your-template.php' === $template_file ) { remove_post_type_support( 'page', 'editor' ); // Other features can also be removed in addition to the editor. See: https://codex.wordpress.org/Function_Reference/remove_post_type_support. } } } 
 add_action('init', 'remove_editor_init'); function remove_editor_init() { remove_post_type_support('page', 'editor'); } 

Sie können dies in Ihre vorhandene Logik zum Erkennen der aktuellen Seitenvorlage einfügen, sodass Sie den Editor nur für bestimmte Seiten deaktivieren.

Siehe: http://codex.wordpress.org/Function_Reference/remove_post_type_support

Sie können eine einfache CSS-Regel mit display:none; hinzufügen display:none; in Ihrem Metabox functionscode:

 if ($template_file == 'template-page-2quotes.php') { echo ''; } 

Zusätzlich zu den tollen WP-only-Antworten können Benutzer des Advanced Custom Fields- Plugins einfach eine einzelne Direktive zu ihren Felddefinitionen hinzufügen, um den Editor von assoziierten Seiten zu entfernen:

 $args = array(); // Already defined with many elements $args['hide_on_screen'] = array('the_content'); // Remove the Editor from associated Pages acf_add_local_field_group($args); // Already defined for use with extant $args 

Da dies in den WP-Shops, mit denen ich gearbeitet habe, ein außerordentlich häufiges Plugin zu sein scheint, sollte diese Methode erwähnt werden.