Как вернуть режим без отвлечений, который у нас был до WP 4.1?

8

Одной из особенностей WP 4.1 было введение нового режима без отвлечения.

Это личное мнение, но я думаю, что оно ужасно по сравнению с режимом pre 4.1:

  • это работает намного хуже со стилями редактора
  • он предлагает меньше места для записи
  • это больше отвлекает, потому что каждый раз, когда вы перемещаете мышь, вы видите, что вещи появляются и исчезают снова ... что может быть более отвлекающим, чем движение на экране?

Кстати, цель этого вопроса не дать мнение о функции, но спросить, как я могу вернуться в режим до 4.1 без отвлечения внимания?

Я провел исследование в Интернете и обнаружил, что многие люди жалуются, но никаких решений, за исключением того, что кто-то говорит только (обескураженный) вариант, снижает его, что, конечно, не вариант.

Gmazzap
источник

Ответы:

8

редактировать

Начиная с WP 4.3 это больше не будет работать. WP полностью удалил javascript для старого режима без отвлечения.

Чтобы использовать это в версиях 4.3, получите копию файла javascript из выпуска WP 4.2 и поставьте его в очередь перед использованием приведенного ниже кода.


Вы можете:

  1. используйте 'wp_editor_settings'фильтр, чтобы установить для '_content_editor_dfw'параметра значение false.

  2. использовать 'mce_buttons'и 'teeny_mce_buttons'фильтры для:

    • удалить новую кнопку без отвлечения, которая имеет идентификатор: 'dfw'
    • добавьте старую кнопку без отвлечения, которая имеет идентификатор:'wp_fullscreen'
  3. используйте 'tiny_mce_plugins'и 'teeny_mce_plugins'фильтры, чтобы добавить старый скрипт плагина, который, к счастью, не был удален, он называется'wpfullscreen'

Для № 1 и № 2 вы можете проверить, что редактор, в котором вы редактируете, - это редактор с идентификатором 'content'.

Все действия , описанные выше , как плагин (поставляется Сущностью здесь ):

<?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');
Gmazzap
источник
Это не работает для меня. Я добавил обратно 4.2 javascript и поставил в очередь в верхней части плагина. Кнопка отображается, но нажатие на нее ничего не делает. Не уверен, что я делаю что-то не так.
How-To Geek