Como recuperar o modo livre de distrações que tínhamos antes do WP 4.1?


8

Um dos recursos do WP 4.1 foi a introdução do novo modo livre de distrações.

Esta é uma opinião pessoal, mas acho que é horrível, comparada com o modo anterior ao 4.1:

  • ele tem um desempenho muito pior com os estilos de editor
  • oferece menos espaço para escrever
  • é mais perturbador, porque toda vez que você move o mouse, as coisas aparecem e desaparecem novamente. o que é mais perturbador do que o movimento na tela?

BTW, o objetivo desta pergunta não é dar opinião sobre o recurso, mas pergunte como posso recuperar o modo livre de distrações antes do 4.1?

Fiz uma pesquisa na web e encontrei muitas pessoas reclamando, mas nenhuma solução, além de alguém dizer que apenas a opção (desanimada) está desclassificando que, é claro, não é uma opção.

Respostas:


8

Editar

A partir do WP 4.3, isso não funcionará mais. O WP removeu completamente o javascript do antigo modo sem distrações.

Para usar isso nas versões 4.3, obtenha uma cópia do arquivo javascript da versão WP 4.2 e enfileire-o antes de usar o código abaixo.


Você pode:

  1. use 'wp_editor_settings'filter para definir a '_content_editor_dfw'opção como false.

  2. use 'mce_buttons'e 'teeny_mce_buttons'filtre para:

    • remova o novo botão sem distrações, com o ID: 'dfw'
    • adicione o botão antigo sem distrações que possui o ID:'wp_fullscreen'
  3. use 'tiny_mce_plugins'e 'teeny_mce_plugins'filter para adicionar o script antigo do plug-in, que felizmente não foi removido, é chamado'wpfullscreen'

Para os nºs 1 e 2, você pode verificar se o editor em sua edição é o único com id 'content'.

Todas as etapas acima como um plug-in (disponível como Gist aqui ):

<?php namespace GM\FSDFM;
/**
 * Plugin Name: Fullscreen Distraction-Free Mode (pre v4.1)
 * Plugin URI: https://gist.github.com/Giuseppe-Mazzapica/c081ce03a68b00d983d5
 * License: MIT
 */

if (!is_admin()) return;

function should($editor_id = 'content') {
  return (version_compare($GLOBALS['wp_version'], '4.1') >= 0)
    && in_array($GLOBALS['pagenow'], array('post.php','post-new.php'))
    && $editor_id === 'content';
}

function buttons($buttons, $editor_id) {
  return should($editor_id)
    ? array_diff(array_merge((array) $buttons, array('wp_fullscreen')), array('dfw'))
    : $buttons;
}

function plugins($plugins) {
  return should()
    ? array_diff(array_merge((array) $plugins, array('wpfullscreen')), array('fullscreen'))
    : $plugins;
}

function settings($settings, $editor_id) {
  if (should($editor_id)) {
    $settings['_content_editor_dfw'] = false;
  }
  return $settings;
}

add_filter('wp_editor_settings', __NAMESPACE__.'\\settings', 30, 2);
add_filter('mce_buttons', __NAMESPACE__.'\\buttons', 30, 2);
add_filter('teeny_mce_buttons', __NAMESPACE__.'\\buttons', 30, 2);
add_filter('teeny_mce_plugins', __NAMESPACE__.'\\plugins');
add_filter('tiny_mce_plugins', __NAMESPACE__.'\\plugins');

Isso não está funcionando para mim. Eu adicionei de volta o javascript 4.2 e o enfileirei na parte superior do plugin. O botão é exibido, mas clicar nele não faz nada. Não tenho certeza se estou fazendo algo errado.
The How-To Geek
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.