UI phân loại phân cấp


11

Tôi không thích cách các phân loại được hiển thị trong quản trị viên Wordpress và tự hỏi liệu có ai biết cách tốt nhất để kết nối và thay đổi nó không. Hiện tại nếu tôi chọn một số thuật ngữ trong bài đăng của mình, các thuật ngữ được chọn đó sẽ đi đến đầu danh sách và cấu trúc phân cấp bị phá vỡ khiến nó trở nên khó hiểu cho người dùng.

Xin vui lòng xem những hình ảnh này cho một ý tưởng về những gì tôi đang nói về

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Tôi muốn hiển thị các nguyên tắc phân loại chính xác cách chúng được hiển thị ban đầu chỉ với các thuật ngữ chính xác được đánh dấu. Có cách nào để thực hiện việc này mà không cần phải chỉnh sửa trực tiếp lõi Wordpress không, tôi không thể thấy bất kỳ móc nào để tôi sử dụng.

Cảm ơn bạn đã giúp đỡ!

Helen


1
Điều đó xảy ra với tất cả các nguyên tắc phân loại bá đạo, nó cực kỳ khó chịu!
Tom J Nowell

Câu hỏi hay. +1.
Anh Trần

Câu trả lời:



2

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.phppost-new.phpmà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 categorychecklisttab 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)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.