X

Desativar Editor de Conteúdo para Modelo de Página Específico

Snippets por IsItWP

Às vezes, você não precisa de um editor de conteúdo para os modelos de página específicos. É útil para páginas de agradecimento e outras páginas que têm um texto fixo e podem não precisar de nenhum conteúdo.

Instruções: Adicione o seguinte código ao arquivo functions.php do seu tema WordPress.
Você precisa alterar o nome do arquivo do template no código. Atualmente é submit.php, mas você pode substituí-lo por qualquer nome de arquivo.

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');
    }
}

Você também pode gostar de adicionar CSS personalizado para o editor do WordPress.

Comentários   Deixe uma resposta

  1. não está funcionando para mim 🙁

    1. Se o modelo estiver em uma pasta, você pode ter que usar este padrão: if($template_file == ‘templates/template-example.php’){ // edite o nome do modelo e o nome da pasta para corresponder ao caminho correto

      Além disso, certifique-se de atualizar a página no navegador.

    2. Acabei de testar com o WordPress 6.8.1, funciona

      Você provavelmente está referenciando o arquivo ou caminho errado aqui

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

      Verifique novamente usando o ID em vez do modelo de página

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

    3. Acabei de testar e funciona no WordPress 6.8.1 – certifique-se de que você está referenciando o caminho e o arquivo corretos. ($template_file === ‘template-page/template.php’)

      Você também pode testar por ID de página para ver se o trecho funciona.

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

  2. Por que não usar:

    get_the_ID();

    em vez de:

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

    1. get_the_ID(); precisa estar dentro do Loop do WordPress, enquanto este trecho precisa funcionar no admin.

  3. Edvins Antonovs January 8, 2015 at 8:40 am

    Funcionou para mim! Ótimo.

  4. Obrigado. Funcionou para mim.

  5. Marcos Nakamine May 15, 2014 at 1:33 pm

    Valeu

  6. Você acabou de me salvar, meu amigo. Muito obrigado!

    Só para você saber, minha página de admin inicialmente não carregou após um erro de servidor depois de colocar o código acima. Eu mudei isto:

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

    para isto:

    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;

    …e isso corrigiu o problema.

    Obrigado novamente!
    -Chris

  7. obrigado, muito útil

  8. isso não funciona para mim, recebo os erros undefined index post e post_ID no backend

  9. Obrigado por isso. Terei que tentar!

    1.  Que bom que gostou.

Adicionar um comentário

Ficamos felizes que você tenha escolhido deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

Checklist de Lançamento WordPress

O Checklist Definitivo para Lançamento de WordPress

Compilamos todos os itens essenciais da lista de verificação para o lançamento do seu próximo site WordPress em um e-book prático.
Sim, envie-me o eBook Gratuito!