X

Inhaltseditor für bestimmte Seiten-Templates deaktivieren

Schnipsel von IsItWP

Manchmal benötigen Sie für bestimmte Seiten-Templates keinen Inhaltseditor. Dies ist nützlich für Dankesseiten und andere Seiten mit festem Text, die möglicherweise keinen Inhalt benötigen.

Anweisungen: Fügen Sie den folgenden Code zur functions.php-Datei Ihres WordPress-Themes hinzu.
Sie müssen den Dateinamen des Templates im Code ändern. Derzeit ist es submit.php, aber Sie können es durch jeden Dateinamen ersetzen.

add_action( 'admin_init', 'hide_editor' );

function hide_editor() {
	$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
	if( !isset( $post_id ) ) return;

	$template_file = get_post_meta($post_id, '_wp_page_template', true);
    
    if($template_file == 'submit.php'){ // edit the template name
    	remove_post_type_support('page', 'editor');
    }
}

Sie können auch benutzerdefiniertes CSS für den WordPress-Editor hinzufügen.

Kommentare   Hinterlasse eine Antwort

  1. es funktioniert bei mir nicht 🙁

    1. Wenn sich das Template in einem Ordner befindet, müssen Sie möglicherweise dieses Muster verwenden: if($template_file == ‘templates/template-example.php’){ // ändern Sie den Template-Namen und den Ordnernamen, um den richtigen Pfad anzugeben

      Stellen Sie außerdem sicher, dass Sie die Seite im Browser aktualisieren.

    2. Gerade mit WordPress 6.8.1 getestet, funktioniert

      Sie verweisen hier wahrscheinlich auf die falsche Datei oder den falschen Pfad

      $template_file === ‘page-template/page-template.php’

      Überprüfen Sie doppelt, indem Sie die ID anstelle des Seiten-Templates verwenden

      if ( intval($post_id) === 24346 ) { remove_post_type_support(‘page’, ‘editor’); }

    3. Gerade getestet und es funktioniert auf WordPress 6.8.1 – stellen Sie sicher, dass Sie den richtigen Pfad und die richtige Datei angeben. ($template_file === ‘template-page/template.php’)

      Sie können auch nach Seiten-ID testen, um zu sehen, ob der Snippet funktioniert.

      if ( intval($post_id) === 24346 ) { remove_post_type_support(‘page’, ‘editor’); }

  2. Warum nicht verwenden:

    get_the_ID();

    anstatt:

    $post_id = $_GET[‘post’] ? $_GET[‘post’] : $_POST[‘post_ID’] ;

    1. get_the_ID(); muss sich innerhalb der WordPress-Schleife befinden, während dieser Snippet im Admin funktionieren muss.

  3. Edvins Antonovs 8. Januar 2015 um 8:40 Uhr

    Es hat für mich funktioniert! Tolle Sache.
    Habe es meiner Snippet-Sammlung hinzugefügt.

  4. Danke. Es hat für mich funktioniert.

  5. Marcos Nakamine 15. Mai 2014 um 13:33 Uhr

    Danke

  6. Du hast mich gerade gerettet, mein Freund. Vielen Dank!

    Nur zur Info, meine Admin-Seite wurde nach dem Einfügen des obigen Codes zunächst nicht geladen, da ein Serverfehler auftrat. Ich habe dies geändert:

    $post_id = $_GET[‘post’] ? $_GET[‘post’] : $_POST[‘post_ID’] ;
    if( !isset( $post_id ) ) return;

    zu diesem:

    if ( isset ( $_GET[‘post’] ) )
    $post_id = $_GET[‘post’];
    else if ( isset ( $_POST[‘post_ID’] ) )
    $post_id = $_POST[‘post_ID’];

    if( !isset ( $post_id ) || empty ( $post_id ) )
    return;

    …und es hat das Problem behoben.

    Nochmals vielen Dank!
    -Chris

  7. Danke, sehr nützlich

  8. Das funktioniert bei mir nicht, ich bekomme die Fehlermeldungen "undefined index post" und "post_ID" im Backend

  9. Danke dafür. Ich werde es ausprobieren müssen!

    1.  Cool, freut mich, dass es dir gefällt.

Kommentar hinzufügen

Wir freuen uns, dass Sie einen Kommentar hinterlassen haben. Bitte beachten Sie, dass alle Kommentare gemäß unserer Datenschutzrichtlinie moderiert werden und alle Links nofollow sind. Verwenden Sie KEINE Schlüsselwörter im Namensfeld. Lassen Sie uns ein persönliches und bedeutungsvolles Gespräch führen.

WordPress Launch Checkliste

Die ultimative Checkliste für den Start von WordPress

Wir haben alle wichtigen Checklistenpunkte für den Start Ihrer nächsten WordPress-Website in einem praktischen E-Book zusammengefasst.
Ja, senden Sie mir das kostenlose E-Book!