it-swarm-vi.tech

Phần mềm và phần mềm của bạn

Câu hỏi là "Sự khác biệt giữa các nguyên tắc phân loại phân cấp và không phân cấp là gì?" Câu hỏi này thực sự làm tôi bối rối lúc đầu vì vậy tôi nghĩ rằng sẽ là một ý tưởng tốt để thể hiện sự khác biệt với những người khác đang lướt trang tìm kiếm sự khác biệt.

Cụ thể, câu hỏi đề cập đến đối số hierarchical được truyền cho hàm register_taxonomy(). Cụ thể hơn, sự khác biệt giữa cái này là gì:

'phân cấp' => sai

register_taxonomy('movie-genre', 'movie', array(
  'hierarchical'    => false,
  'label'           => 'Genre',
  'query_var'       => 'movie-genre',
  'rewrite'         => array('slug' => 'genres' ),
));

Và điều này?

'phân cấp' => đúng

register_taxonomy('movie-genre', 'movie', array(
  'hierarchical'    => true,
  'label'           => 'Genre',
  'query_var'       => 'movie-genre',
  'rewrite'         => array('slug' => 'genres' ),
));

Lưu ý Tôi sẽ tiếp tục và trả lời câu hỏi của riêng mình nhưng sẽ không đánh dấu nó là tốt nhất trừ khi không có ai khác bước lên với một câu trả lời thực sự tốt. Ngoài ra cảm giác ruột của tôi nói với tôi rằng tôi có thể không nắm bắt được mọi sự phân biệt giữa hai sự phân đôi vì vậy nếu không xin vui lòng cho chúng tôi biết những gì tôi đã bỏ lỡ.

33
MikeSchinkel

câu trả lời đơn giản thuật ngữ trong phân loại phân cấp có thể có thuật ngữ con . Nhưng còn gì nữa không?

'phân cấp' => sai

Khi bạn chỉ định 'hierarchical'=>false, bạn sẽ nhận được loại metabox sau đây là định dạng metabox mà WordPress cũng sử dụng cho Thẻ bài:

Taxonomy Term Metabox in the Post Edit Screen when $hierarchical==false

'phân cấp' => đúng

Tuy nhiên, khi bạn chỉ định 'hierarchical'=>true, bạn sẽ nhận được loại metabox sau đây là định dạng metabox mà WordPress cũng sử dụng cho Danh mục:

Taxonomy Term Metabox in the Post Edit Screen when $hierarchical==true

Tất nhiên ví dụ trên cũng chỉ ra nơi phân loại phân cấp có thể là một chút hỗn hợp vì trong các danh mục con trong cuộc sống thực thường áp dụng cho nhiều danh mục chính. Mặc dù vậy, việc bắt đầu "nhiều phụ huynh" không phải là cách phân loại phân cấp hoạt động trong WordPress nhưng IMO phân loại mọi thứ hoàn hảo gần như không thể bất kể về cách WordPress hoạt động. Vì vậy, Caveat Emptor!

Khi đăng ký phân loại tùy chỉnh hoặc "Tại sao nó không lưu?"

Mặc dù không liên quan trực tiếp đến câu hỏi nếu bạn là người mới thử các phân loại tùy chỉnh, (hoặc một nhà phát triển có kinh nghiệm không chú ý như đã xảy ra với tôi khi tôi viết bài này!) Có khả năng là bạn ' sẽ thử thêm register_taxonomy() giống như mã bạn thấy trong câu hỏi trực tiếp vào tệp functions.php của chủ đề. Rất tiếc!

Nếu bạn thêm mã trực tiếp vào functions.php metabox của bạn sẽ hiển thị nhưng nó sẽ không lưu các điều khoản mới được thêm vào của bạn (và ở dạng 'heirarchical'=>true của metabox, các điều khoản hiện tại của bạn sẽ không tải với các hộp kiểm.) Đó là vì bạn cần đăng ký tùy chỉnh phân loại (và các loại bài tùy chỉnh) trong một hook init, như vậy:

<?php
add_action('init','register_movie_genre_taxonomy');
  function register_movie_genre_taxonomy() {
    register_taxonomy('movie-genre', 'movie', array(
      'hierarchical'    => true,
      'label'           => 'Movie Genre',
      'query_var'       => 'movie-genre',
      'rewrite'         => array('slug' => 'genres' ),
    ));
}

Hi vọng điêu nay co ich!

40
MikeSchinkel