分层分类法UI


11

我不喜欢分类法在Wordpress管理员中的显示方式,并且想知道是否有人知道挂接和更改它的最佳方法。当前,如果我在帖子中选择了一些术语,则这些选择的术语将移至列表顶部,并且层次结构被破坏,使用户在视觉上感到困惑。

请查看这些图片以了解我在说什么

在此处输入图片说明 在此处输入图片说明

我想准确地显示分类法的最初显示方式,只勾选正确的术语。有没有一种方法而不必直接编辑Wordpress核心,我看不到任何挂钩供我使用。

感谢您提供的任何帮助!

海伦


1
所有分层分类法都会发生这种情况,这非常烦人!
汤姆·J·诺维尔

好问题。+1。
Anh Tran 2012年

Answers:



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

然后,我们将一个文件更深地移入核心,以进入定义/元框回调

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

...将完全禁用复选框。

如果有更多信息,它将更新,并且(可能是解决方案)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.