回溯,让我们首先检查实际发生的位置:
添加元框post.php
和post-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 )
The
categorychecklist
tab是保存列表的选项卡。内部
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 );
。。。只需完全禁用复选框。
如果我得到更多信息和(可能是一个解决方案),将进行更新