UI taksonomi hirarkis

11

Saya tidak suka cara taksonomi ditampilkan di dalam admin Wordpress dan bertanya-tanya apakah ada yang tahu cara terbaik untuk menghubungkan dan mengubahnya. Saat ini jika saya memilih beberapa istilah dalam posting saya, istilah-istilah yang dipilih pergi ke bagian atas daftar dan hierarki rusak sehingga secara visual membingungkan bagi pengguna.

Silakan lihat gambar-gambar ini untuk ide tentang apa yang saya bicarakan

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Saya ingin menampilkan taksonomi persis bagaimana mereka ditampilkan pada awalnya hanya dengan ketentuan yang benar dicentang. Apakah ada cara untuk melakukan ini tanpa harus mengedit inti Wordpress secara langsung, saya tidak dapat melihat kaitan apa pun untuk saya gunakan.

Terima kasih atas bantuan yang dapat Anda berikan!

Helen

Menipu
sumber
1
Itu terjadi dengan semua taksonomi pusaka, itu sangat menjengkelkan!
Tom J Nowell
Pertanyaan yang bagus +1.
Anh Tran

Jawaban:

2

Backtrace

Pertama-tama mari kita periksa di mana ini sebenarnya terjadi:

Kotak meta ditambahkan pada post.phpdan post-new.phplayar.

# inside ~/wp-admin/edit-form-advanced.php
// TAGS:
if ( !is_taxonomy_hierarchical($tax_name) )
    add_meta_box('tagsdiv-' . $tax_name, $label, 'post_tags_meta_box', null, 'side', 'core', array( 'taxonomy' => $tax_name ));
// CATEGORIES:
else
    add_meta_box($tax_name . 'div', $label, 'post_categories_meta_box', null, 'side', 'core', array( 'taxonomy' => $tax_name ));

Kemudian kami memindahkan satu file lebih dalam ke inti untuk mendapatkan definisi / meta kotak panggilan balik

// inside ~/wp-admin/meta-boxes.php
function post_categories_meta_box( $post, $box )

The categorychecklisttab adalah salah satu yang memegang daftar. Di dalam div, kami mendapat fungsi bernama wp_popular_terms_checklist($taxonomy);.

# inside ~/wp-admin/includes/template.php
<li id="<?php echo $id; ?>" class="popular-category">
<label class="selectit">
<input id="in-<?php echo $id; ?>" type="checkbox" <?php echo $checked; ?> value="<?php echo (int) $term->term_id; ?>" <?php echo $disabled ?>/>
    <?php echo esc_html( apply_filters( 'the_category', $term->name ) ); ?>
</label>
</li>

»Kesimpulan:

Ini berarti, bahwa kita tidak punya kesempatan nyata untuk mencegat ini di tingkat sisi server polos dengan WP filter / pengait dan PHP.

Melakukan sesuatu seperti ...

add_filter( 'wp_get_object_terms', '__return_empty_array', 20, 4 );

... hanya akan menonaktifkan kotak centang sepenuhnya.

akan memperbarui jika saya mendapat informasi lebih lanjut dan (mungkin solusi)

kaisar
sumber