Wie bekomme ich den ablenkungsfreien Modus zurück, den wir vor WP 4.1 hatten?

8

Eines der Merkmale von WP 4.1 war die Einführung eines neuen ablenkungsfreien Modus.

Dies ist eine persönliche Meinung, aber ich denke, es ist im Vergleich zum Modus vor 4.1 schrecklich:

  • Bei Editor-Stilen ist die Leistung viel schlechter
  • Es bietet weniger Platz zum Schreiben
  • Es ist ablenkender, weil jedes Mal, wenn Sie die Maus bewegen, Dinge erscheinen und wieder verschwinden. Was ist ablenkender als Bewegung auf dem Bildschirm?

Übrigens, der Zweck dieser Frage ist nicht, eine Meinung zu der Funktion abzugeben, sondern zu fragen, wie ich den ablenkungsfreien Modus vor 4.1 zurückerhalten kann.

Ich habe im Internet recherchiert und festgestellt, dass sich viele Leute beschwert haben, aber keine Lösung, abgesehen von jemandem, der nur (entmutigte) Option sagt, ist eine Herabstufung, die natürlich keine Option ist.

gmazzap
quelle

Antworten:

8

Bearbeiten

Ab WP 4.3 funktioniert dies nicht mehr. WP hat das Javascript für den alten ablenkungsfreien Modus vollständig entfernt .

Um dies in 4.3-Versionen zu verwenden, holen Sie sich eine Kopie der Javascript-Datei aus WP 4.2 und stellen Sie sie in die Warteschlange, bevor Sie den folgenden Code verwenden.


Du kannst:

  1. Verwenden Sie den 'wp_editor_settings'Filter, um die '_content_editor_dfw'Option auf false zu setzen.

  2. Verwendung 'mce_buttons'und 'teeny_mce_buttons'Filter für:

    • Entfernen Sie den neuen ablenkungsfreien Button mit der ID: 'dfw'
    • Fügen Sie den alten ablenkungsfreien Button mit der ID hinzu:'wp_fullscreen'
  3. Verwenden Sie 'tiny_mce_plugins'und 'teeny_mce_plugins'Filter, um das alte Plugin-Skript hinzuzufügen, das zum Glück nicht entfernt wurde, es heißt'wpfullscreen'

Für # 1 und # 2 können Sie überprüfen, ob der Editor, den Sie bearbeiten, derjenige mit der ID ist 'content'.

Alle oben genannten Schritte als Plugin (erhältlich als Gist hier ):

<?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
quelle
Das funktioniert bei mir nicht. Ich habe das 4.2-Javascript wieder hinzugefügt und es oben im Plugin in die Warteschlange gestellt. Die Schaltfläche wird angezeigt, aber wenn Sie darauf klicken, wird nichts ausgeführt. Ich bin mir nicht sicher, ob ich etwas falsch mache.
The How-To Geek