Hiyerarşik sınıflandırma kullanıcı arayüzü


11

Taksonomilerin Wordpress yöneticisi içinde görüntülenme şeklini sevmiyorum ve birinin takmak ve değiştirmek için en iyi yolu bilip bilmediğini merak ediyordum. Şu anda gönderimde bazı terimler seçersem, bu seçilen terimler listenin en üstüne gider ve hiyerarşi bozulur ve kullanıcı için görsel olarak kafa karıştırıcı hale gelir.

Neden bahsettiğim hakkında bir fikir edinmek için lütfen bu resimlere bakın

resim açıklamasını buraya girin resim açıklamasını buraya girin

Taksonomileri başlangıçta nasıl doğru terimlerle gösterildiklerini tam olarak nasıl göstermek istiyorum. Wordpress çekirdeğini doğrudan düzenlemek zorunda kalmadan bunu yapmanın bir yolu var mı, kullanmam için herhangi bir kanca göremiyorum.

Verebileceğiniz her yardım için teşekkürler!

Helen


1
Tüm heirarchical taksonomilerde bu olur, son derece sinir bozucu!
Tom J Nowell

Güzel soru. +1.
Anh Tran

Yanıtlar:



2

Geritakip

Önce bunun gerçekte nerede olduğunu kontrol edelim:

Meta kutu eklenir post.phpve post-new.phpekranlar.

# 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 ));

Ardından, tanım / meta kutu geri aramasına ulaşmak için bir dosyayı çekirdeğe daha derinlere taşıyoruz

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

categorychecklistSekme listesi tutulur biridir. İçinde divadında bir fonksiyon var 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>

»Sonuç:

Bu, WP filtreleri / kancaları ve PHP ile düz sunucu tarafı düzeyinde bunu yakalamak için gerçek bir şansımız olmadığı anlamına gelir.

Gibi bir şey yapmak ...

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

... işaretli kutuları tamamen devre dışı bırakır.

daha fazla bilgi ve (belki bir çözüm) varsa güncellenir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.