Loại bài tùy chỉnh - trường đặt hàng


13

Trong loại bài đăng tùy chỉnh, có cách nào để bao gồm trường "đặt hàng" có sẵn cho các trang không?

Có logic tích hợp nào ngăn các giá trị trùng lặp trong trường "thứ tự" không?

Ý tưởng là có thể sắp xếp một loại bài đăng tùy chỉnh theo thứ tự do người dùng chỉ định, sau đó theo thứ tự bảng chữ cái theo trường tùy chỉnh dựa trên chuỗi.


Câu trả lời:


24

Khi khai báo loại bài đăng tùy chỉnh của bạn bằng hàm register_post_type, bạn phải thêm 'thuộc tính trang' vào trường hỗ trợ, như trong ví dụ sau:

register_post_type('myposttype', array(
    'supports' => array('title', 'editor', 'page-attributes'),
    'hierarchical' => false
));

Bạn sẽ cần thêm bất kỳ hộp meta được hỗ trợ nào khác vào trường 'hỗ trợ', xem http://codex.wordpress.org/Function_Reference/register_post_type để biết thêm thông tin về các trường register_post_type.

Ngoài ra, theo như tôi biết, không có cách nào được xây dựng để ngăn chặn hai thứ tự giống nhau, điều này là do bạn có thể tạo thứ tự phụ dựa trên quyền thừa kế (vì vậy một nhóm trang trẻ em có thể có thứ tự khác với thứ tự khác)


sử dụng page-attributestrình bày cả orderlĩnh vực và parentlĩnh vực. Làm thế nào để tôi thoát khỏi parentlĩnh vực này?
Lực lượng chảy

Đừng bận tâm. Đặt hierarchicalthành false được loại bỏ nó.
Lực lượng dòng chảy

Thật tệ, tôi không nhận ra bạn cũng không muốn trang của bố mẹ. Tôi sẽ cập nhật câu trả lời của tôi để loại trừ nó.
Dave Hunt

Chào. Tôi có mã này nhưng tôi không thấy gì: `` `// Loại bài đăng tùy chỉnh dịch vụ add_action ('init', 'create_post_type'); function created_post_type () {$ hỗ trợ_args = mảng ('title', 'Editor', 'page-Thuộc tính'); register_post_type ('dịch vụ', mảng ('nhãn' => mảng ('name' => __ ('Dịch vụ'), 'singular_name' => __ ('Dịch vụ'), 'hỗ trợ' => $ hỗ trợ_args, 'phân cấp' => sai), 'công khai' => đúng, 'has_archive' => đúng, // 'menu_poseition' => 2)); } `` `
Sylar

@Sylar Tôi nhận ra điều này là rất muộn, nhưng có vẻ như tôi 'hỗ trợ' => $ hỗ trợ_args, 'phân cấp' => sai nằm ở phần sai của mảng. Bạn có nó được lồng dưới mảng nhãn trong ví dụ của bạn, nó phải nằm trong mảng cơ sở, ở cùng cấp độ với 'công khai' => đúng
Dave Hunt

4

Ngoài phản hồi của @ Dave-Hunt, bạn cũng có thể thêm bộ lọc, chẳng hạn như sau, để xác định thứ tự tùy chỉnh - trong trường hợp này, theo thứ tự bảng chữ cái theo tiêu đề. (Mã nhờ vào bài đăng trên blog của Mark Leong. ) Xóa is_admin()séc, nếu bạn muốn bạn tùy chỉnh order_by ở mặt trước.

hàm set_custom_post_types_admin_order ($ wp_query) {
  if (is_admin ()) {

    // Lấy loại bài đăng từ truy vấn
    $ post_type = $ wp_query-> truy vấn ['post_type'];

    if ($ post_type == 'POST_TYPE') {

      Giá trị // 'orderby' có thể là bất kỳ tên cột nào
      $ wp_query-> set ('orderby', 'title');

      Giá trị // 'order' có thể là ASC hoặc DESC
      $ wp_query-> set ('đặt hàng', 'ASC');
    }
  }
}
add_action ('pre_get_posts', 'set_custom_post_types_admin_order');

Cập nhật

Để xác thực trước khi lưu, hãy xem câu trả lời này: /wordpress//a/40095/4645 nơi các tùy chọn của bạn được thảo luận. Về cơ bản, nó thuộc về jQuery tùy chỉnh, vì WordPress không có bất kỳ hook lưu trước nào.

Ngoài ra (sao chép nhận xét trước đây của tôi ở đây để tham khảo trong tương lai), đây là cách hiển thị trường 'thứ tự menu' trong quản trị viên, để người dùng có thể chỉnh sửa, vì nó dành cho các trang: Thêm cột 'thứ tự menu' vào màn hình quản trị loại bài đăng tùy chỉnh

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.