Làm cách nào để thay đổi vị trí mặc định của hộp meta WP?


Câu trả lời:


22

Bạn có thể xóa các hộp meta mặc định bằng remove_meta_box và thêm lại chúng ở một vị trí khác với add_meta_box:

add_action('do_meta_boxes', 'wpse33063_move_meta_box');

function wpse33063_move_meta_box(){
    remove_meta_box( 'postimagediv', 'post', 'side' );
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}

Điều này sẽ loại bỏ nó khỏi cột bên và thêm nó vào cột chính. thay đổi posttrong ví dụ này thành bất cứ loại bài đăng tùy chỉnh nào của bạn được đặt tên.


Điều này có vẻ lý tưởng, cảm ơn một lần nữa Milo tôi sẽ thử.
Mr.Brown

@Milo: Như thể add_meta_box()cần một $callbacktên hàm, làm sao tôi biết tên của hàm được sử dụng bởi WordPress? Giả sử nếu tôi muốn làm điều tương tự với thanh bên meta_box 'Danh mục' (#c Categorydiv)?
Hồi giáo Mayeenul

5
@MayeenulIslam tìm trong tệp /wp-admin/edit-form-advanced.phpvà bạn sẽ thấy nơi WordPress thêm tất cả các hộp meta cốt lõi và các cuộc gọi lại và đối số mà nó sử dụng. cho các loại nó là post_categories_meta_box.
Milo

5

Tôi cũng vật lộn với điều này. Tôi thực sự không tìm thấy một cách rõ ràng để xác định lại bố cục / thứ tự - đặc biệt là vì người dùng có thể thay đổi nó khi / nếu họ kéo các hộp.

Tôi thích làm mọi thứ 'với' wordpress (nó thường được đền đáp), thích thú hơn là đụng độ với nó và cách thức wordpress làm như sau:

wordpress lưu trữ các vị trí được kéo trên mỗi người dùng trên mỗi màn hình và có một loạt các khóa meta người dùng mà nó sử dụng tùy thuộc vào trang / màn hình nào được bật.

Vì vậy, bạn có thể thêm một hành động hoặc bộ lọc cho mỗi người dùng mới để đặt người dùng cài đặt theo cách bạn muốn mặc định.
1) Kéo và sắp xếp trang bạn muốn tác động, sau đó 2) tìm trong phpmyadmin tại meta người dùng cho id của bạn và xem wp đã lưu trữ gì ở đó. 3) sau đó mã hóa hành động người dùng mới như sau nếu người dùng KHÔNG cài đặt đó (để tránh ghi đè lên lựa chọn cá nhân), bạn có thể đặt nó theo cách bạn muốn - với giá trị bạn tìm thấy từ cài đặt thủ công.

Để có được ý tưởng về siêu dữ liệu meta người dùng mà bạn đang tìm kiếm, hãy xem các ảnh chụp màn hình sau: http://wpusersplugin.com/related-plugins/amr-user-temsheet/scshotsshots-for-user-temsheet/

(Cuối cùng tôi đã viết một plugin chung để tôi có thể là quản trị viên xác định bố cục ưa thích của tôi cho tất cả người dùng cho tất cả các loại trang / màn hình. Sau đó, họ có thể thay đổi điều đó, ví dụ như khi họ trở nên thành thạo hơn. những thứ như plugin của tôi chỉ tìm nạp các giá trị người dùng mẫu, thậm chí nó không cố gắng đặt giá trị thành giá trị được mã hóa cứng.)


1
Mặc dù tôi thích ý tưởng đằng sau phương pháp này, nhưng giải pháp của Milo có vẻ nhanh hơn rất nhiều vì vậy tôi sẽ đưa ra một phát súng thay thế, nhưng cảm ơn bạn đã dành thời gian để thông báo cho tôi về phương pháp này. Tôi sẽ xem xét sử dụng cách này vào một ngày sau đó. Tôi 1up bình luận của bạn.
Mr.Brown

3
Plugin được đề xuất bởi Anmari là một plugin thương mại phải trả tiền ... và không giống như được cập nhật kể từ tháng 8 năm ngoái. Bạn vẫn đang duy trì plugin đó? Nếu không, bạn đã xem xét chia sẻ nó trên Github chưa?
unfulvio

Cảm ơn @anmari đã chia sẻ phương pháp này, thực sự hữu ích.
Maor Barazany

0

Nếu bạn muốn đặt hàng chính xác các hộp meta của mình, bạn có thể sử dụng plugin này: https://wordpress.org/plugins/post-meta-box-order/

Nó chơi trên meta-box-order_post của tùy chọn người dùng (bảng wp_usermeta).

Lưu ý 1: kỹ thuật này có thể được áp dụng cho bất kỳ CPT tùy chỉnh nào bằng cách thay đổi phần cuối của cờ: meta-box-order_ [Your_CPT]

Lưu ý 2: đừng quên thay đổi hàm băm trong mã của plugin để áp dụng đơn hàng mới của bạn cho tất cả người dùng hiện có.

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.