3. Juni 2016

#Templates

#Wordpress

WordPress: Inhalts-Editor auf bestimmten Template-Seiten verstecken

Manche WordPress-Seiten benötigen aufgrund des Templates keinen Editor für den Seiteninhalt. Dieser ist beispielsweise über sog Custom-Fields, die bspw. mit dem Plugin ACF gepflegt. Damit Benutzer den Inhalt der Seite nicht trotzdem über den Editor pflegen wollen und sich wundern, warum dieser nicht angezeigt wird, empfiehlt es sich diesen auszublenden.

Um den Inhalts-Editor für Seiten eines bestimmten Tepmlate-Typs auszublenden wird folgende Action in die Datei functions.php des Themes eingefügt.

add_action( 'admin_init', 'hide_editor' );

function hide_editor() {
      global $pagenow;<br>
    if( !( 'post.php' == $pagenow ) ) return;
<br>
    global $post;
    //ID des Posts
    $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'];
    if( !isset( $post_id ) ) return;
<br>
    // Verstecken des Editors auf einer Seite mit einem bestimmten Titel
    $homepgname = get_the_title($post_id);
    if($homepgname == 'Seitentitel'){ 
       remove_post_type_support('page', 'editor');
    }
    // Verstecken des Editors auf Seiten eines bestimmten Seitentemplates
    // Ermitteln des Names des Seitentemplates
    $template_file = get_post_meta($post_id, '_wp_page_template', true);
    if($template_file == '[Seitentemplate].php'){
       remove_post_type_support('page', 'editor');
      }
}


Dabei muss der Titel der Seite oder der Name der Template-Datei festgelegt werden. Wird diese Seite nun editiert, ist der Editor für den Inhalt der Seite nicht mehr sichtbar.