Tôi tự hỏi liệu có cách nào để thay đổi vị trí mặc định của các hộp meta Wordpresses, chẳng hạn như "hình ảnh đặc trưng" cho các loại bài đăng tùy chỉnh mà không phải kéo chúng theo cách thủ công không?
Thí dụ:
Tôi tự hỏi liệu có cách nào để thay đổi vị trí mặc định của các hộp meta Wordpresses, chẳng hạn như "hình ảnh đặc trưng" cho các loại bài đăng tùy chỉnh mà không phải kéo chúng theo cách thủ công không?
Thí dụ:
Câu trả lời:
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 post
trong 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.
add_meta_box()
cần một $callback
tê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)?
/wp-admin/edit-form-advanced.php
và 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
.
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.)
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ó.