Bagaimana cara mendapatkan kembali mode bebas gangguan yang kami miliki sebelum WP 4.1?

8

Salah satu fitur WP 4.1 adalah pengenalan mode bebas gangguan baru.

Ini adalah pendapat pribadi, tetapi saya pikir itu mengerikan, pada kenyataannya, dibandingkan dengan mode pra 4.1:

  • kinerjanya jauh lebih buruk dengan gaya editor
  • ia menawarkan lebih sedikit ruang untuk menulis
  • itu lebih mengganggu, karena setiap kali Anda menggerakkan mouse Anda melihat sesuatu muncul dan menghilang lagi .. apa yang lebih mengganggu daripada gerakan di layar?

BTW, tujuan pertanyaan ini bukan untuk memberikan pendapat tentang fitur ini, tetapi tanyakan bagaimana saya bisa mendapatkan kembali mode bebas gangguan sebelum 4.1?

Saya melakukan penelitian di web dan menemukan banyak orang mengeluh, tetapi tidak ada solusi, selain seseorang mengatakan hanya pilihan (tidak disarankan) yang menurunkan peringkat itu, tentu saja, bukan pilihan.

gmazzap
sumber

Jawaban:

8

Edit

Pada WP 4.3 ini tidak akan berfungsi lagi. WP telah sepenuhnya menghapus javascript untuk mode bebas gangguan yang lama .

Untuk menggunakan ini dalam versi 4.3, dapatkan salinan file javascript dari rilis WP 4.2 dan enqueue sebelum menggunakan kode di bawah ini.


Kamu bisa:

  1. gunakan 'wp_editor_settings'filter untuk mengatur '_content_editor_dfw'opsi ke false.

  2. gunakan 'mce_buttons'dan 'teeny_mce_buttons'filter untuk:

    • hapus tombol bebas gangguan baru, yang memiliki id: 'dfw'
    • tambahkan tombol bebas gangguan lama yang memiliki id:'wp_fullscreen'
  3. gunakan 'tiny_mce_plugins'dan 'teeny_mce_plugins'filter untuk menambahkan skrip plugin lama, yang untungnya tidak dihapus, namanya'wpfullscreen'

Untuk # 1 dan # 2 Anda dapat memeriksa apakah editor yang Anda edit adalah yang memiliki id 'content'.

Semua langkah di atas sebagai plugin (tersedia sebagai Intisari di sini ):

<?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
sumber
Ini tidak bekerja untuk saya. Saya menambahkan kembali javascript 4.2 dan menambahkannya di bagian atas plugin. Tombol ditampilkan tetapi mengkliknya tidak menghasilkan apa-apa. Tidak yakin apakah saya melakukan sesuatu yang salah.
The How-To Geek