Làm cách nào để lấy lại chế độ không bị phân tâm mà chúng tôi đã có trước WP 4.1?


8

Một trong những tính năng của WP 4.1 là giới thiệu chế độ không phân tâm mới.

Đây là ý kiến ​​cá nhân, nhưng thực tế tôi nghĩ nó thật kinh khủng so với chế độ trước 4.1:

  • nó hoạt động kém hơn rất nhiều với các kiểu soạn thảo
  • nó cung cấp ít không gian hơn để viết
  • nó gây mất tập trung hơn, bởi vì mỗi lần bạn di chuyển chuột bạn lại thấy mọi thứ xuất hiện và biến mất một lần nữa .. điều gì gây mất tập trung hơn chuyển động trong màn hình?

BTW, mục đích của câu hỏi này không đưa ra ý kiến ​​về tính năng này, nhưng hỏi làm thế nào tôi có thể quay lại chế độ không bị phân tâm trước 4.1?

Tôi đã làm một nghiên cứu trên web và thấy rất nhiều người phàn nàn, nhưng không có giải pháp nào, ngoài việc ai đó chỉ nói tùy chọn (không khuyến khích) đang hạ cấp rằng, tất nhiên, không phải là một lựa chọn.

Câu trả lời:


8

Biên tập

Kể từ WP 4.3, nó sẽ không hoạt động nữa. WP đã loại bỏ hoàn toàn javascript cho chế độ không bị phân tâm .

Để sử dụng phiên bản 4.3 này, hãy lấy một bản sao của tệp javascript từ bản phát hành WP 4.2 và xử lý nó trước khi sử dụng mã dưới đây.


Bạn có thể:

  1. sử dụng 'wp_editor_settings'bộ lọc để đặt '_content_editor_dfw'tùy chọn thành false.

  2. sử dụng 'mce_buttons''teeny_mce_buttons'bộ lọc để:

    • loại bỏ nút không phân tâm mới, có id: 'dfw'
    • thêm nút không phân tâm có id:'wp_fullscreen'
  3. sử dụng 'tiny_mce_plugins''teeny_mce_plugins'các bộ lọc để thêm tập lệnh plugin cũ, may mắn không bị xóa, nó được đặt tên'wpfullscreen'

Đối với # 1 và # 2, bạn có thể kiểm tra xem trình chỉnh sửa mà bạn chỉnh sửa có phải là id không 'content'.

Tất cả các bước ở trên dưới dạng plugin (có sẵn dưới dạng Gist tại đây ):

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

Điều này không làm việc cho tôi. Tôi đã thêm lại javascript 4.2 và ghi lại nó ở đầu plugin. Nút hiển thị nhưng nhấp vào nó không làm gì cả. Không chắc chắn nếu tôi làm điều gì sai.
Hướng dẫn cách làm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.