Mọi người sử dụng WordPress sẽ quen thuộc với Bảng quản trị WordPress xuất hiện trong tất cả các khu vực tổng quan cốt lõi như Trang và Bài đăng. Định dạng tương tự được sử dụng cho các loại bảng này trong toàn bộ WordPress, nghĩa là bạn nhanh chóng trở nên thành thạo trong việc sử dụng các loại bảng này. Nhưng bạn có biết rằng bạn có thể sửa đổi Bảng quản trị WordPress và thay đổi thông tin được hiển thị hoặc thêm các cột bổ sung của riêng bạn không?
Trong bài viết này, chúng tôi sẽ giải thích cách bạn có thể làm điều này. Bắt đầu nào
Mục lục
những cái móc
Để hiển thị dữ liệu bảng quản trị, WordPress mở rộng Lớp tích hợp
add_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
5. Lớp học add_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
5 được giới thiệu là lớp học riêng trong tệp add_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
7. Các lớp riêng tư được đặt tên là riêng tư vì chúng chỉ dành cho các lớp và chức năng cốt lõi khác sử dụng chứ không phải bởi các nhà phát triểnWordPress cung cấp cho bạn khả năng thay đổi bảng quản trị. Để thao tác với các cột của bảng, bạn phải sử dụng một trong các hook bộ lọc mà WordPress cung cấp trong tệp
add_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
8Trong tệp này, Lớp
add_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
9 mở rộng Lớp add_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
5 và xác định lại các thuộc tính và phương thức của nó để điền vào các bảng quản trị theo loại bài đăng của nó. Bạn có thể sử dụng móc add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
1 cho bảng bài đăng, móc add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
2 cho các trang và add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
3 nếu bạn muốn thao tác các cột của bảng loại bài đăng tùy chỉnhCác cột được sử dụng theo mặc định cho dữ liệu bảng cũng được mô tả trong tệp này. Xung quanh dòng 616, mảng
add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
4 được giới thiệu và các cột sau được thêm vào- Cột hộp kiểm 'cb' cho các hành động hàng loạt
- Cột 'tiêu đề' của bài đăng
- Cột ‘tác giả’ dành cho tác giả Bài đăng
- Cột 'danh mục' cho Danh mục mà bài đăng thuộc về
- Cột 'thẻ' của bài đăng
- Cột 'bình luận'
- Cột 'ngày' được xuất bản
Thêm Cột tùy chỉnh vào Bảng quản trị
Thêm một cột tùy chỉnh vào bảng là điều mà các nhà phát triển thường xuyên phải làm. Ngoài ra, khả năng sắp xếp các cột của bạn cũng rất tiện lợi khi sắp xếp nội dung. Chúng tôi sẽ trình bày cách triển khai cột tùy chỉnh cho bài đăng, trang và loại bài đăng tùy chỉnh cũng như cách chúng tôi có thể sắp xếp các cột tùy chỉnh này
Bảng danh sách bài viết
Để làm ví dụ, hãy xem cách chúng tôi có thể thêm cột mô tả thời điểm bài đăng được sửa đổi lần cuối. Đây có thể là một tính năng thực sự hữu ích, đặc biệt nếu bạn điều hành một blog có nhiều bài đăng và muốn có thể kiểm tra xem mỗi bài được cập nhật lần cuối khi nào. Hãy xem làm thế nào điều này có thể được thực hiện
Để bắt đầu, chúng ta phải thêm tên cột mới vào mảng tên tiêu đề cột. Hãy xem xét kỹ hơn dòng 663 của tệp
add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
5if [ 'page' === $post_type ] {
$posts_columns = apply_filters[ 'manage_pages_columns', $posts_columns ];
} else {
$posts_columns = apply_filters[ 'manage_posts_columns', $posts_columns, $post_type ];
}
Trong phần mã này, rõ ràng là chúng ta nên sử dụng bộ lọc
add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
1 [xem tại đây để biết thêm thông tin về điều này] vì chúng ta muốn thực hiện các thay đổi đối với bảng danh sách bài đăng. Để thêm tên cột vào mảng tiêu đề cột, chúng tôi sẽ chỉnh sửa tệp add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
7 của chủ đề đang hoạt động của chúng tôi và chèn đoạn mã nàyadd_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
Bây giờ nếu chúng tôi làm mới trang danh sách bài đăng của quản trị viên, chúng tôi có thể thấy cột bổ sung. Sẽ không có dữ liệu trong cột này ở giai đoạn này
Trong bước tiếp theo, chúng tôi cần cho WordPress biết nội dung nào sẽ được hiển thị trong cột. Để làm điều này, chúng tôi sẽ sử dụng hành động
add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
1 là một phần của chức năng công khai add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
9 chịu trách nhiệm về đầu ra cột. Hành động này chỉ tương ứng với các loại bài đăng không phân cấp, chẳng hạn như bài đăng và bạn có thể phát hiện ra nó ở dòng 1258Những gì chúng tôi thực sự sẽ làm ở đây để điền nội dung là chạy câu lệnh chuyển đổi cho tất cả các cột tùy chỉnh và vì tên tiêu đề là 'last_modified' [như chúng tôi đã đăng ký ở bước đầu tiên ở trên], chúng tôi sẽ lặp lại nội dung của mình. Để lặp lại nội dung, chúng tôi sẽ sử dụng hàm
add_filter['manage_pages_columns','add_custom_page_columns'];
function add_custom_page_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
0 tích hợp trong WordPress và trả về trường mong muốn có thể là bất kỳ cột nào từ bảng add_filter['manage_pages_columns','add_custom_page_columns'];
function add_custom_page_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
1 trong cơ sở dữ liệu. Trong trường hợp thất bại, nó sẽ trả về chuỗi rỗngVì vậy, trong tệp
add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
7, chúng tôi sẽ thêm mã bên dướiadd_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
Bạn có thể xác nhận điều này đang hoạt động như mong đợi bằng cách làm mới trang một lần nữa
Lưu ý rằng giá trị 'Sửa đổi lần cuối' cho bài đăng thứ hai chưa bao giờ được sửa đổi sau lần xuất bản đầu tiên của nó giống với ngày xuất bản
Bảng danh sách trang
Để làm điều tương tự trong bảng danh sách trang, chúng tôi thêm tên cột theo cách tương tự vào mảng tên tiêu đề cột. Sự khác biệt lần này là chúng ta sẽ sử dụng móc
add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
2 như hình bên dướiadd_filter['manage_pages_columns','add_custom_page_columns'];
function add_custom_page_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
Tiếp theo, chúng tôi sẽ thêm nội dung bằng cách sử dụng móc
add_filter['manage_pages_columns','add_custom_page_columns'];
function add_custom_page_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
4 thay vì add_filter['manage_pages_columns','add_custom_page_columns'];
function add_custom_page_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
5 mà chúng tôi đã sử dụng trước đóadd_action[ 'manage_pages_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
Sau khi chèn mã ở trên vào tệp
add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
7 của chúng tôi, chúng tôi có thể xác nhận mọi thứ đang hoạt động như mong đợi bằng cách truy cập bảng Quản trị Trang trong khu vực quản trị của chúng tôi, nơi bây giờ chúng tôi sẽ thấy cột 'Sửa đổi lần cuối'Bảng loại bài đăng tùy chỉnh
Trước tiên, chúng tôi sẽ tạo một loại bài đăng tùy chỉnh bằng cách chèn mã bên dưới vào tệp
add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
7 của chúng tôifunction my_custom_post_type[] {
register_post_type[ 'mycpt',
array[
'labels' => array[
'name' => __[ 'Custom Post Types' ],
'singular_name' => __[ 'Custom Post Type' ]
],
'public' => true,
'has_archive' => true,
'rewrite' => array['slug' => 'mycpt'],
'show_in_rest' => true,
]
];
}
add_action[ 'init', 'my_custom_post_type' ];
Trong menu quản trị của chúng tôi, chúng tôi sẽ nhận thấy rằng một mục mới đã được thêm vào có tên là 'Loại bài đăng tùy chỉnh'
Nếu bạn không biết cách tạo các loại bài đăng tùy chỉnh và muốn biết thêm, bạn có thể xem bài viết liên quan của chúng tôi về cách tạo các loại bài đăng tùy chỉnh
Bây giờ chúng tôi đã thiết lập Loại bài đăng tùy chỉnh của mình sẽ tiến hành thêm tiêu đề cột mới với nội dung của nó. Như đã đề cập trước đây, trong trường hợp CPT [Loại bài đăng tùy chỉnh], chúng tôi phải sử dụng
add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
3 để thêm cột tùy chỉnh của mìnhadd_filter['manage_pages_columns','add_custom_page_columns'];
function add_custom_page_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
9 phải giống với đối số đầu tiên của hàm add_action[ 'manage_pages_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
0, trong trường hợp này là 'mycpt'Vì vậy, đoạn mã chúng tôi sẽ sử dụng trong tệp
add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
7 để thêm tiêu đề cột của chúng tôi sẽ như sauadd_filter[ 'manage_mycpt_posts_columns','add_mycpt_custom_columns'];
function add_mycpt_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
Và để điền vào nội dung cột
add_action[ 'manage_mycpt_posts_custom_column','fill_mycpt_posts_custom_column'];
function fill_mycpt_posts_custom_column[ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
Kết quả sẽ giống như thế này
Tạo các cột có thể sắp xếp
Để làm cho cột có thể sắp xếp, chúng tôi phải xác định cột tùy chỉnh nào được phép sắp xếp. Để thực hiện điều này, chúng tôi sử dụng bộ lọc
add_action[ 'manage_pages_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
2 với chức năng gọi lạiVì vậy, trong mỗi trường hợp loại bài đăng, chúng tôi sẽ thêm cùng một mã [tất nhiên là có tên hàm duy nhất]
Đối với bài viết
add_filter[ 'manage_edit-post_sortable_columns', 'sortable_post_columns' ];
function sortable_post_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
Đối với các trang
add_filter[ 'manage_edit-page_sortable_columns', 'sortable_page_columns' ];
function sortable_page_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
Đối với loại bài đăng tùy chỉnh của chúng tôi [mycpt]
add_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
0Bây giờ, nếu bạn truy cập một trong các bảng Quản trị của mình, bạn sẽ thấy rằng tiêu đề của cột tùy chỉnh được hiển thị dưới dạng liên kết. Nếu bạn nhấp vào đây thì nó sẽ sắp xếp theo ngày sửa đổi
Vô hiệu hóa Sắp xếp cho Cột
Để loại bỏ tính năng sắp xếp cho một cột, chúng ta chỉ cần loại bỏ nó khỏi mảng. Ví dụ: nếu chúng tôi muốn làm điều này cho cột 'ngày', chúng tôi sẽ thêm vào một dòng mã bổ sung
add_action[ 'manage_pages_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
3. Điều này sẽ trông như thế nàyĐối với bài viết
add_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
1Đối với các trang
add_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
2Đối với loại bài đăng tùy chỉnh của chúng tôi [mycpt]
add_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
3Bây giờ, nếu bạn truy cập vào bảng thích hợp, bạn sẽ nhận thấy rằng nhãn Ngày không thể nhấp được nữa [và do đó, cột đó không thể sắp xếp được nữa]
Tại thời điểm này, đáng để làm nổi bật một chi tiết thường khiến các nhà phát triển WordPress bối rối. Hãy xem bảng bên dưới hiển thị các hook mà chúng tôi đã sử dụng cho Bài đăng, Trang và Bài đăng tùy chỉnh
Bạn có thể nhận thấy rằng các móc mà chúng tôi sử dụng để sắp xếp các cột không thực sự tuân theo mẫu. Bạn sẽ mong đợi chúng lần lượt là
add_action[ 'manage_pages_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
4, add_action[ 'manage_pages_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
5 và add_action[ 'manage_pages_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
6. Thật không may, đây chỉ là vấn đề đặt tên xấu. Tuy nhiên, rất hữu ích khi giữ một bảng tóm tắt như thế này như một lời nhắc nhở dễ dàngThay đổi chiều rộng cột
Để điều chỉnh độ rộng của cột, chúng tôi sẽ sử dụng hook hành động
add_action[ 'manage_pages_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
7 mà WordPress cung cấp và thực thi trong phần đầu cho tất cả các trang quản trị bao gồm CSS hoặc JSVí dụ: hãy thử nhập mã bên dưới vào tệp
add_action[ 'manage_posts_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
7add_filter['manage_posts_columns','add_custom_columns'];
function add_custom_columns[ $columns ] {
$columns['last_modified'] = 'Last modified';
return $columns;
}
4Ở đây, chúng tôi đã sử dụng lớp
add_action[ 'manage_pages_custom_column','custom_columns_content', 10, 2 ];
function custom_columns_content [ $column_id, $post_id ] {
switch[ $column_id ] {
case 'last_modified':
echo get_post_field['post_modified', $post_id];
break;
}
}
9 của cột tiêu đề phổ biến cho tất cả các bảng quản trị và lớp function my_custom_post_type[] {
register_post_type[ 'mycpt',
array[
'labels' => array[
'name' => __[ 'Custom Post Types' ],
'singular_name' => __[ 'Custom Post Type' ]
],
'public' => true,
'has_archive' => true,
'rewrite' => array['slug' => 'mycpt'],
'show_in_rest' => true,
]
];
}
add_action[ 'init', 'my_custom_post_type' ];
0. Kết hợp lại, những điều này đảm bảo rằng CSS sẽ chỉ được áp dụng trong bảng danh sách bài đăngĐể đạt được điều tương tự cho các màn hình Quản trị viên khác của chúng tôi [chẳng hạn như Trang], chúng tôi sẽ sử dụng
function my_custom_post_type[] {
register_post_type[ 'mycpt',
array[
'labels' => array[
'name' => __[ 'Custom Post Types' ],
'singular_name' => __[ 'Custom Post Type' ]
],
'public' => true,
'has_archive' => true,
'rewrite' => array['slug' => 'mycpt'],
'show_in_rest' => true,
]
];
}
add_action[ 'init', 'my_custom_post_type' ];
1 thay thếPhần kết luận
Có rất nhiều khả năng khi thao tác với các cột Bảng quản trị WordPress. Trong các bài viết trong tương lai, chúng tôi sẽ chạy qua một số ví dụ khác và cung cấp một số thủ thuật hữu ích mà bạn có thể sử dụng để tận dụng tối đa các bảng Quản trị của mình