Đặt bảng chỉnh sửa vị trí và bảng điều khiển của metaboxes cho TẤT CẢ người dùng và quản trị viên


10

Thiết lập WP 3.3 của tôi bao gồm một số loại bài đăng và bảng chỉnh sửa tùy chỉnh với plugin Trường tùy chỉnh nâng cao (tạo nhiều metaboxes) và các plugin khác như bảng điều khiển siêu dữ liệu SEO, kết nối Post2Post của Scribu và hơn thế nữa.

Vấn đề là, thứ tự xuất hiện của các bảng này thường khá ngẫu nhiên (ngay cả khi Trường tùy chỉnh được quảng cáo cung cấp một số thứ tự, nhưng nó không luôn hoạt động, vì các plugin khác không có nó và hơn nữa tôi có thể muốn thay đổi metabox vị trí theo loại bài).

Giờ đây, Wordpress cho phép mỗi quản trị viên / người dùng có quyền thích hợp để sắp xếp các metabox trong bảng chỉnh sửa theo cách họ muốn. Tuy nhiên ... mỗi quản trị viên phải tự sắp xếp !! Không có cách nào để chuẩn bị một thứ tự mặc định / cố định hoặc đặc biệt là cho superadmin hoặc một quản trị viên để đặt vị trí bảng cho MỌI THỨ?

Tôi có ít nhất 4 quản trị viên và một vài biên tập viên / tác giả ... không có nghĩa là tôi phải thiết lập bảng điều khiển của họ đăng nhập bằng MACHI tài khoản của họ ... thật ngu ngốc và tốn thời gian, và gây nhầm lẫn cho những người dùng không hiểu biết về wordpress .

Có plugin hay đoạn mã nào có thể giúp ích cho trường hợp của tôi không?

cảm ơn bạn


Ai đó đã hỏi những câu hỏi tương tự trên các diễn đàn wp 1 năm trước, chủ đề của anh ta không có câu trả lời, không được giải quyết và một số quản trị viên đã đóng chủ đề wordpress.org/support/topic/
trộm

Câu trả lời:


7

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');
}

Câu trả lời ở trên là từ luồng sau: Làm thế nào để thay đổi vị trí mặc định của các hộp meta WP?

CẬP NHẬT

Nếu sự thất vọng chính hoàn toàn là số lượng hộp meta có sẵn và bạn không nghĩ mỗi người dùng cần tất cả các hộp, bạn có thể ẩn chúng khỏi các vai trò người dùng thấp hơn hoặc tất cả các vai trò bằng cách sử dụng mã sau đây được thêm vào tệp tin.php. LƯU Ý - Phương pháp này chỉ đơn giản là ẩn hộp meta và không hủy kích hoạt hoặc xóa chúng.

//Hide Post Page Options from all except Administrator
if (!current_user_can('administrator')){
function hide_post_page_options() {
global $post;
$hide_post_options = "<style type=\"text/css\"> #wptotwitter_div, wpseo_meta, #al2fb_meta, #misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section, .al2fb_post_submit, #slugdiv, #edit-slug-box, #screen-options-link-wrap { display: none; }</style>";
print($hide_post_options);
}
add_action( 'admin_head', 'hide_post_page_options'  );
}

//Hide Post Page Options from ALL users
function hide_all_post_page_options() {
global $post;
$hide_all_post_options = "<style type=\"text/css\"> #taxonomy-category li.hide-if-no-js, #commentstatusdiv, #wypiekacz_sectionid, #postexcerpt, #trackbacksdiv, #postcustom, #yarpp_relatedposts { display: none !important; }</style>";
print($hide_all_post_options);
}
add_action( 'admin_head', 'hide_all_post_page_options'  );

Về cơ bản, bạn chỉ cần nhập id hoặc lớp được phân tách bằng dấu phẩy. Tôi chỉ để lại của tôi ở đó để chỉ ra rằng tất cả các loại hộp meta và khu vực có thể được ẩn đi.

#wptotwitter_div - WP to Twitter plugin
#wpseo_meta - Wordpress SEO by Yoastplugin
#al2fb_meta, .al2fb_post_submit - Add Link to Facebookplugin
#misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section - Default Wordpress Publish Status and Visibility
#slugdiv, #edit-slug-box - The post slug
#screen-options-link-wrap - The "Screen Options" tab at the top of the page
#taxonomy-category li.hide-if-no-js - The "Most Used" categories tab
#commentstatusdiv - The comments on the post
#wypiekacz_sectionid - Wypiekacz plugin
#postexcerpt - Post excerpt
#trackbacksdiv - Trackbacks
#postcustom - Custom post fields
#yarpp_relatedposts - Yet Another Related Posts Plugin

(Tôi đặt các ví dụ trong "mã" vì SE sử dụng # để thể hiện một tiêu đề)

Tôi nghĩ rằng tôi sẽ ném nó ra cho bạn bởi vì, giống như bạn, tôi đã vô cùng thất vọng với tất cả các hộp meta, nhưng cuối cùng tôi nghĩ là số lượng hộp không mong muốn. Đối với một "tác giả" trên trang web của tôi, hiện tại nó rất hợp lý: Tiêu đề, Nội dung, lưu dưới dạng bản nháp, xuất bản ngay bây giờ hoặc lên lịch để đăng, thẻ, danh mục và hình ảnh nổi bật ... Không lộn xộn.


Điều đó không giải quyết được vấn đề của tôi, muốn thực hiện việc sao chép cài đặt wysiwyg của tôi cho tất cả người dùng (vì vậy tôi đã đặt sự xuất hiện của các bảng một lần và mãi mãi); Lý do: một số plugin thêm metaboxes của riêng họ; Ngoài ra, đối với các loại bài đăng khác nhau, tôi muốn đặt metaboxes cho phù hợp. Add_meta_box chỉ có mức bình thường / cao / thấp ... với nhiều metabox không giúp ích được gì. Các trường tùy chỉnh nâng cao ít nhất có số thứ tự, nhưng nó không hoạt động tốt khi có các metaboxes khác. Cách tốt nhất để làm điều này sẽ là wysiwyg ...
unfulvio

Bạn có sử dụng và cần tất cả các hộp meta bổ sung được tạo bởi các plugin không? Tôi hỏi bởi vì, đối với tôi, tất cả các hộp meta không cần thiết là thứ luôn làm tôi thất vọng. Nếu đó thực sự là trường hợp của bạn, tôi đã thực hiện CẬP NHẬT ở trên rằng có thể nếu bạn chỉ cần ẩn các hộp không cần thiết cho một số vai trò người dùng nhất định, vấn đề của bạn có thể được loại bỏ ... Điều đó chắc chắn đã xảy ra với tôi!
Travis Pflanz

Tại sao bạn không loại bỏ metaboxes bởi người dùng thay vì chỉ đơn giản là ẩn chúng với kiểu dáng?
Stephen Harris

Không phải tất cả mọi thứ tôi loại bỏ là một hộp meta, một số là một phần của hộp meta, vì vậy tôi đoán rằng tôi sẽ chỉ sử dụng một chức năng, thay vì hai.
Travis Pflanz

Travis, cảm ơn bạn đã dành nhiều hơn cho việc này. Tuy nhiên, giải pháp CSS không giải quyết được vấn đề di chuyển metaboxes (giải pháp lọc và định vị lại một phần trước đây của bạn). Như tôi đã đề cập trước đó, thiết lập của tôi có nhiều loại bài đăng tùy chỉnh với các metabox đặc biệt mà tôi đã thực hiện và chúng phải ở đó. Thực sự có rất ít tôi muốn ẩn (nhưng chúng sẽ hữu ích với một số quản trị viên, vì vậy tôi không muốn xóa chúng vĩnh viễn và ẩn bằng CSS không phải là một động thái tốt). Tôi vẫn chưa tìm thấy một giải pháp thỏa đáng cho vấn đề này. Dù sao cũng cảm ơn bạn đã nỗ lực.
unfulvio

1

Bạn đã xem qua plugin Adminizing chưa?

Nó cho phép bạn kích hoạt / hủy kích hoạt các hộp meta cho mỗi vai trò người dùng và cũng định cấu hình vị trí. Phải mất một chút để cấu hình nó và tài liệu rất tốt, mặc dù có nhiều chỗ nhưng nó có thể xử lý những gì bạn đang mô tả.


Plugin đó không cho phép bạn "định cấu hình vị trí", chỉ hiển thị. Đây là một plugin rất hay, tho ..
frnhr 16/2/13

Tôi sẽ thú nhận rằng đã không xem xét kỹ tất cả các plugin nhưng nếu nó có thể thao tác một, thì có lẽ nó có thể được thực hiện để thao túng cái kia thông qua một số bổ sung mã. Làm cho một điểm khởi động tốt đẹp.
JCL1178
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.