Backtrace
Trước tiên hãy kiểm tra xem điều này thực sự xảy ra:
Hộp meta được thêm vào post.php
và post-new.php
màn hình.
# 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 ));
Sau đó, chúng tôi di chuyển một tệp sâu hơn vào lõi để có được định nghĩa / gọi lại hộp meta
// inside ~/wp-admin/meta-boxes.php
function post_categories_meta_box( $post, $box )
Các categorychecklist
tab là một trong đó giữ danh sách. Trong div
, chúng tôi có một chức năng được đặt tên 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>
" Phần kết luận:
Điều này có nghĩa là, chúng tôi không có cơ hội thực sự để chặn điều này ở cấp độ máy chủ đơn giản với các bộ lọc / hook WP và PHP.
Làm một cái gì đó như ...
add_filter( 'wp_get_object_terms', '__return_empty_array', 20, 4 );
... chỉ đơn giản là vô hiệu hóa hoàn toàn các hộp kiểm tra.
sẽ cập nhật nếu tôi có thêm thông tin và (có thể là một giải pháp)