階層分類UI


11

Wordpressの管理内で分類法が表示される方法が気に入らず、誰かがそれをフックして変更する最良の方法を知っているのではないかと思っていました。現在、投稿内のいくつかの用語を選択すると、それらの選択された用語はリストの一番上に移動し、階層が壊れてユーザーにとって視覚的に混乱します。

私が話していることのアイデアについては、これらの画像を参照してください

ここに画像の説明を入力してください ここに画像の説明を入力してください

正しい用語にチェックマークを付けて、分類が最初にどのように表示されるかを正確に表示したいと思います。Wordpressコアを直接編集せずにこれを行う方法はありますか。使用するフックが表示されません。

あなたが与えることができるあらゆる助けをありがとう!

ヘレン


1
それはすべての階層的な分類法で起こります、それは非常に迷惑です!
トムJノーウェル

いい質問です。+1。
Anh Tran、2012

回答:



2

バックトレース

まず、これが実際に発生する場所を確認しましょう。

メタボックスは上追加されますpost.phppost-new.php画面。

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

次に、1つのファイルをコアのさらに奥に移動して、定義/メタボックスコールバックに移動します。

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

categorychecklistタブには、リストを保持するものです。内にはdiv、という名前の関数があります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>

»結論:

これは、WPフィルター/フックおよびPHPを使用して、プレーンサーバーサイドレベルでこれをインターセプトする実際のチャンスがないことを意味します。

次のようなことをしています...

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

...チェックボックスを完全に無効にするだけです。

さらに情報が得られた場合は更新され、(おそらく解決策)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.