Gutenberg: ACF Metabox selalu terlihat

Dibuat pada 4 Des 2018  ·  24Komentar  ·  Sumber: WordPress/gutenberg

Jelaskan bugnya
Semua grup bidang yang dibuat dengan plugin Bidang Khusus Lanjutan ditampilkan sebagai metabox kosong yang terlihat saat mengedit entri yang tidak relevan dengan aturan lokasi grup bidang tersebut.

screen shot 2018-12-04 at 1 41 20 pm

Gambar di atas menunjukkan semua grup bidang sebagai metabox kosong saat mengedit kiriman Hello World.

Memahami bug
Alasan untuk ini adalah karena Gutenberg menghapus / mengubah visibilitas metabox selama inisialisasi. Silakan lihat contoh kode di bawah ini untuk mereplikasi masalah.

Berikut adalah sedikit latar belakang tentang masalah tersebut dan mengapa ini penting untuk diperbaiki sebelum 5.0 dirilis ...

ACF mendaftarkan semua grup bidang sebagai metabox dan kemudian menggunakan JS untuk menyembunyikan / menampilkannya berdasarkan aturan lokasinya. Hal ini memungkinkan untuk update dinamis dari metabox ketika atribut posting (seperti kategori, post_format, post_parent) sedang diedit. Pendekatan ini memungkinkan ACF untuk menerima urutan metabox kustom dan pengaturan posisi yang ditetapkan saat menyeret di sekitar metabox.

Dengan Gutenberg diaktifkan (atau WordPress 5.0 RC2), semua metabox ditampilkan sebagai terlihat. Saya percaya bahwa beberapa kode JS dalam Gutenberg mengatur visibilitas metabox tanpa memeriksa apakah metabox sudah disembunyikan oleh JS khusus.

Mengapa ini perlu diperbaiki
Ada banyak alasan mengapa hal ini perlu diperbaiki, tetapi saya akan mencoba meyakinkan Anda hanya dengan beberapa:

  1. Pengalaman pengguna. Setiap pengguna dengan ACF terinstal akan mengalami masalah ini dalam beberapa menit pertama mengaktifkan Gutenberg / memperbarui ke 5.0. Ini menghadirkan pengalaman pengguna yang negatif bagi mereka yang telah menyesuaikan situs web. Pengguna akan bertanya-tanya "apa lagi yang rusak"?
  2. Adopsi. Masalah ini sayangnya berdampak buruk pada Gutenberg. Masalahnya hanya terlihat ketika Gutenberg aktif dan pada akhirnya akan menyebabkan pengembang / pengguna yang tidak senang yang memasang ACF.

Untuk Mereproduksi
Berikut beberapa contoh kode dan beberapa lampiran untuk mendemonstrasikan masalah tersebut:

<?php 

// Register a metabox.
add_action('add_meta_boxes', 'test_add_meta_boxes', 10, 2);
function test_add_meta_boxes( $post_type, $post ) {

    add_meta_box( 'test-metabox', 'Test Metabox', 'test_render_meta_box', $post_type, 'normal', 'high' );
}

// Render metabox HTML.
function test_render_meta_box() {
    ?>
    <script type="text/javascript">
    (function($) {
        $('#test-metabox').hide();
        $('#test-metabox .inside').html('This should be hidden.');
    })(jQuery); 
    </script>
    <?php
}

?>

screen shot 2018-12-04 at 1 24 57 pm

Perilaku yang diharapkan
Metabox yang disembunyikan melalui JS khusus harus tetap tersembunyi.

Konteks tambahan

  • Masalah ada di semua versi Gutenberg atau WP 5.0
[Feature] Meta Boxes [Status] In Progress [Type] Bug

Komentar yang paling membantu

Apakah Anda tidak menyadari berapa juta situs yang menggunakan ACF dan ACF Pro yang akan terpengaruh? Tidak memperbaiki ini sebelum rilis 5.0 konyol dan sangat mengecewakan bahwa Anda hanya bersedia merilis kode yang merusak plugin yang begitu populer. Saya yakin jika masalah ini memengaruhi Jetpack atau beberapa plugin Automattic lainnya, itu akan diperbaiki dalam beberapa menit dan secara ajaib ditambahkan ke rilis 5.0.

screenshot_992
* Ini Hanya untuk ACF saja

Semua 24 komentar

Ini terjadi karena MetaBoxVisibility menetapkan style.display menjadi '' ketika dipasang:

https://github.com/WordPress/gutenberg/blob/69b55c70443762c1d302e982a5f91196ff0892f4/packages/edit-post/src/components/meta-boxes/meta-box-visibility.js#L8 -L10

Salah satu perbaikan yang mudah adalah memperbarui ini untuk hanya memperbarui DOM jika kita perlu _hide_ kotak meta:

componentDidMount() {
    if ( ! this.props.isVisible ) {
        this.updateDOM();
    }
}

Namun pengguna masih dapat menampilkan kotak meta lagi dengan membuka _Options_ dan mematikan / pada kotak centang untuk kotak meta itu.

@elliotcondon : Apakah Anda dapat membatalkan registrasi meta box menggunakan remove_meta_box() alih-alih menyembunyikannya dengan CSS? Dengan cara ini kotak meta akan dihapus dari editor dan dari modal _Options_.

@noisysocks Terima kasih atas balasan dan infonya.

Saya senang melihat solusi alternatif untuk memperbarui metabox secara dinamis, namun, tidak mungkin untuk meluncurkan pembaruan ke semua pengguna sebelum rilis WP5.0 hari Kamis.

Apakah mungkin untuk "memasang" metabox tanpa menghilangkan gaya "tampilan" mereka?
Ini akan memungkinkan Gutenberg mewarisi HTML metabox seperti yang diharapkan.

Apakah mungkin untuk "memasang" metabox tanpa menghilangkan gaya "tampilan" mereka?

Ya, pada dasarnya ini adalah perubahan yang saya usulkan di atas. Ini hanya mengurangi bug, karena Gutenberg perlu menyetel style.display menjadi '' atau 'none' sehingga pengguna dapat mengaktifkan dan menonaktifkan kotak meta melalui modal _Options_.

Itu masuk akal. Apakah ini cukup mudah untuk didorong ke rilis 5.0?

Saya minta maaf untuk mengatakan bahwa sudah terlambat dalam siklus rilis untuk memperbaikinya untuk 5.0 dan ini bukan masalah pemblokiran. Saya telah menambahkannya ke tonggak 5.0.1 yang ditargetkan untuk dua minggu setelah 5.0 dirilis pada 6 Desember.

Sebagai solusinya, Anda bisa mencoba menyembunyikan elemen menggunakan pendekatan yang tidak mengubah style.display , mis.

- $('#test-metabox').hide();
+ $('#test-metabox').addClass( 'hidden' );

Apakah Anda tidak menyadari berapa juta situs yang menggunakan ACF dan ACF Pro yang akan terpengaruh? Tidak memperbaiki ini sebelum rilis 5.0 konyol dan sangat mengecewakan bahwa Anda hanya bersedia merilis kode yang merusak plugin yang begitu populer. Saya yakin jika masalah ini memengaruhi Jetpack atau beberapa plugin Automattic lainnya, itu akan diperbaiki dalam beberapa menit dan secara ajaib ditambahkan ke rilis 5.0.

screenshot_992
* Ini Hanya untuk ACF saja

Saya mengelola lebih dari 200 pemilik situs yang memanfaatkan ACF dan 31 lainnya menggunakan ACF Pro. Siklus rilis ini termasuk yang paling mengecewakan yang pernah saya temui. Memalukan untuk membicarakan masalah ini selama dua minggu, atau lebih.

Saya yakin jika masalah ini memengaruhi Jetpack atau beberapa plugin Automattic lainnya, itu akan diperbaiki dalam beberapa menit dan secara ajaib ditambahkan ke rilis 5.0.

Amin

Saya berasumsi mengaktifkan editor klasik memperbaiki masalah ini? Tidak yakin berapa banyak kode Gutenberg yang masih disertakan dengannya

@elliotcondon Apakah ini regresi, atau telah berfungsi seperti ini selama ini?

Kemungkinan ini adalah regresi yang diperkenalkan sebulan yang lalu oleh https://github.com/WordPress/gutenberg/pull/11084.

Tolong tetap pada topik. Ini bukan tempat untuk membahas proses rilis 5.0 seperti apa adanya.

Apa yang dimaksud dengan "pendekatan super hacky" di https://github.com/WordPress/gutenberg/pull/11084 ?

Bukankah lebih baik menggunakan "pendekatan non hacky", karena WordPress 5.0 "sudah siap" sekarang? Atau bukan?

@noisysocks Sudahkah Anda berhasil menguji permintaan penarikan Anda terhadap ACF di muka sebelum penggabungan seperti yang direkomendasikan @youknowriad ?

Maaf, saya menyilangkan kabel saya di sana. Regresi ini diperkenalkan pada 4.1 enam minggu lalu oleh https://github.com/WordPress/gutenberg/pull/10676.

Halo semua. Kami mulai melihat banyak tiket dukungan terkait masalah ini. Harap terus perbarui tiket GitHub ini dengan rencana Anda untuk mengatasi masalah tersebut.

12628 memperbaiki masalah dan akan dikirimkan sebagai bagian dari WordPress 5.0.1 dalam ~ 2 minggu.

Menyembunyikan kotak meta menggunakan $( '#test-metabox' ).addClass( 'hidden' ) atau wp.data.dispatch( 'core/edit-post' ).removeEditorPanel( 'meta-box-test-metabox' ) tetap menjadi solusi yang disukai.

Untuk selanjutnya, kami merekomendasikan removeEditorPanel() atau remove_meta_box() digunakan untuk kasus seperti ini.

Sepertinya kami perlu merilis pembaruan untuk memperbaikinya dari pihak kami.
Sayangnya, perbaikan kecil seperti itu tidak dapat ditambahkan ke WP 5.0 sebelum rilis.
Ini secara langsung mempengaruhi setiap pengguna ACF yang memperbarui ke 5.0.

Sepertinya kami perlu merilis pembaruan untuk memperbaikinya dari pihak kami.
Sayangnya, perbaikan kecil seperti itu tidak dapat ditambahkan ke WP 5.0 sebelum rilis.
Ini secara langsung mempengaruhi setiap pengguna ACF yang memperbarui ke 5.0.

WordPress benar-benar mengacaukan Gutenberg. Mereka mengatakan bahwa mereka mendengarkan penggunanya, tetapi ternyata tidak. Tidak ada yang menginginkan monstrositas ini.

Terima kasih banyak kepada @elliotcondon karena telah memperbaiki

Ya, sangat disayangkan bahwa bug ini tidak ditemukan dan diperbaiki tepat waktu untuk pembekuan kode 5.0.

_Please_ mari kita tetap pada topik. GitHub adalah tempat kerja kami. Sangat penting bahwa kita menjaga percakapan di sini tetap bersahabat dan sesuai topik sehingga kontributor yang ada dapat melakukan pekerjaan terbaik mereka dan kontributor baru dipersilakan masuk ke proyek.

@noisysocks ... maafkan saya. Aku akan mencoba menggigit lidahku. Tetapi Anda harus tahu bahwa apa yang Anda lakukan telah berdampak negatif pada jutaan pengguna WP hanya untuk meletakkannya di pengembang plugin itu untuk memperbaiki kesalahan Anda. Seharusnya WP yang mengeluarkan perbaikan dan bukan ACF.

Ya, sangat disayangkan bahwa bug ini tidak ditemukan dan diperbaiki tepat waktu untuk pembekuan kode 5.0.

Mungkin jika rilis ini tidak terlalu terburu-buru maka itu akan ditemukan. Mungkin jika Gutenberg tidak terus-menerus merusak kompatibilitas ke belakang, itu tidak perlu ditemukan sejak awal.

Berapa kali Elliot memiliki ACF yang berfungsi dengan baik hanya untuk dipatahkan beberapa minggu kemudian oleh Gutenberg, itu konyol! Fakta bahwa ini dirilis, mengetahui bahwa itu akan merusak jutaan situs, sama konyolnya.

Seperti yang disebutkan @noisysocks , repositori ini adalah tempat kami bekerja: sama seperti Anda tidak akan masuk ke kantor seseorang dan menjelekkan mereka atau pekerjaan mereka, melakukannya di sini juga tidak dapat diterima.

Saya memahami bahwa menjengkelkan mengalami bug, terutama jika hal itu memengaruhi situs yang Anda kelola dalam produksi. Namun, itu bukan alasan untuk melampiaskan rasa frustrasi Anda dalam laporan bug, yang dibuat khusus untuk tujuan memperbaiki bug tersebut.

12628 akan ada di WordPress 5.0.1, yang akan dirilis dalam ~ 2 minggu. Jika Anda ingin membantu memastikan bahwa itu diperbaiki sepenuhnya, saya akan mendorong Anda untuk menguji PR itu dan melihat apakah itu memperbaiki masalah untuk Anda, terutama untuk konfigurasi ACF yang lebih kompleks.

Sementara itu, saya telah menyembunyikan komentar di luar topik di utas ini. Harap tetap diskusi lebih lanjut tentang topik.

Tetap saja, mengalami masalah ini setelah memperbarui 5.0

Beruntung?

@pento ... Sama seperti Automattic yang menyensor masukan pengguna. Jika Anda tidak menyukai komentarnya, lakukan pekerjaan yang lebih baik dalam menyusun barang-barang Anda. Saya pikir itu lucu bahwa Anda akan menunggu 2 minggu untuk memperbaiki bug besar seperti ini. Tidak mungkin aku menunggu selama itu. Heck, saya tidak akan membuang sampah semacam ini sejak awal.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat