Một plugin WordPress có thể có rất nhiều thành phần khác nhau. Ví dụ: một số có thể cần sử dụng mã ngắn để đạt được mục đích của họ. Trong khi những người khác có thể cần tạo các loại bài đăng tùy chỉnh
Nhưng một thành phần mà hầu hết mọi plugin đều cần là trang quản trị. [Hoặc thậm chí họ có thể cần nhiều hơn một. ] Thế mới nói, thiết kế trang quản trị bằng lập trình hướng đối tượng không hề đơn giản. Có rất nhiều phần chuyển động khác nhau mà bạn phải cân nhắc trong thiết kế của mình
Lớp trang quản trị được thiết kế tốt sẽ kết hợp các phần chuyển động khác nhau này thành một lớp gắn kết. Chìa khóa để đạt được điều này là hiểu vai trò của các phần chuyển động khác nhau này trong bức tranh lớn hơn của trang quản trị. Chúng tôi sẽ làm điều đó bằng cách phân tích những gì tạo nên trang quản trị ngay từ đầu
Các thành phần của một trang quản trịVới suy nghĩ này, chúng ta hãy tiếp tục và xem xét các yếu tố khác nhau của một trang quản trị. Tất cả chúng rơi vào hai loại lớn. Đây là đăng ký trang quản trị và hiển thị nó
Đăng ký trang quản trị
Chúng ta sẽ bắt đầu với việc đăng ký một trang quản trị. Với WordPress, bạn đăng ký trang quản trị bằng hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6. Ngoài ra còn có các chức năng phím tắt như
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];7 cho phép bạn thêm trang menu con vào menu WordPress cụ thể. Điều đó nói rằng, đằng sau hậu trường, tất cả các hàm này gọi hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6
Bản thân hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6 có rất nhiều tham số và nó yêu cầu bạn sử dụng tất cả trừ một trong số chúng. Nếu bạn không sử dụng chức năng phím tắt như chức năng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];7, trước tiên bạn cần cung cấp cho nó một số
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];1. Đó là sên của menu cha mà trang quản trị sẽ hiển thị trên đó
Sau đó, bạn cần cung cấp cho chức năng một
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];2 và một
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];3. Đầu tiên là thẻ
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];4 khi bạn vào trang quản trị. Cái còn lại là tiêu đề của trang quản trị sẽ có trong menu chính mà chúng ta đã xác định trong tham số đầu tiên
Tiếp theo, bạn phải cung cấp cho chức năng một
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];5. Đó là thứ mà người dùng phải có để xem menu trong quản trị viên WordPress. Điều đó nói rằng, có rất nhiều khả năng có thể để lựa chọn. Điều này có thể hơi quá sức khi bạn đang cố gắng tìm đúng thứ để sử dụng
Nói chung, rất nhiều plugin sử dụng khả năng chỉ hiển thị trang quản trị cho quản trị viên. Ngoài kịch bản phổ biến đó, nó thay đổi tùy theo ngữ cảnh của trang quản trị. Ví dụ: một plugin xử lý nhận xét có thể muốn sử dụng
Tham số bắt buộc cuối cùng là
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];8. Đây là slug mà trang quản trị sẽ sử dụng. Bạn cần con sên này là duy nhất nếu không bạn sẽ gặp phải các lỗi hiển thị kỳ lạ
Tham số cuối cùng là
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];9. Nó có thể gọi được mà WordPress sẽ sử dụng để hiển thị nội dung của trang quản trị. Tham số là tùy chọn, nhưng trên thực tế, bạn cần sử dụng nó nếu muốn hiển thị trang quản trị của mình. [Và ai không muốn điều đó. ?]
Kết xuất trang quản trị
Tham số
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];9 là một cách hay để hiển thị phần tử có vấn đề nhất của trang quản trị. Đó là cách hiển thị HTML của trang quản trị. Không có sự đồng thuận giữa các nhà phát triển WordPress về cách tốt nhất để làm điều này
Điều này có nghĩa là có gần như nhiều cách để làm điều này cũng như có nhiều nhà phát triển WordPress. Ok, đây có thể là một cường điệu nhẹ. Nhưng sự thật là các nhà phát triển WordPress sử dụng rất nhiều phương pháp khác nhau để hiển thị HTML của trang quản trị
Một số [dù ít. ] sử dụng API cài đặt. Trong khi những người khác chọn tự hiển thị tất cả bằng PHP. Và một số làm điều gì đó thậm chí còn cực đoan hơn và xây dựng ứng dụng một trang cho trang quản trị của họ
Có những ưu điểm và nhược điểm đối với từng phương pháp này. [Chính vì vậy mỗi người có một cách làm khác nhau. ] Điều đó nói rằng, chúng tôi muốn sử dụng càng nhiều hệ thống WordPress càng tốt cho việc này. Đó là lý do tại sao chúng tôi sẽ sử dụng API cài đặt để thực hiện việc này
Tạo nội dung HTML
Có một vấn đề lớn với API cài đặt. [Và đó là một trong những lý do tại sao nó không phổ biến. ] Là nó không giúp tạo ra HTML của trang quản trị. Chúng ta vẫn phải tìm cách để làm điều đó
May mắn cho chúng tôi, chúng tôi đã đề cập đến cách tạo HTML bằng lập trình hướng đối tượng trước đây. Bây giờ, không cần phải đọc bài viết này. [Đó là một cách tự quảng cáo khá kinh khủng phải không?] Nó chỉ ở đó để tham khảo
Bài viết này chỉ là sử dụng lại một số ý tưởng đã thấy trong bài viết đó. Nhưng chúng tôi sẽ không thiết kế một lớp để tạo HTML như chúng tôi đã làm trong đó. Nó sẽ giữ mọi thứ đơn giản hơn một chút. Điều đó nói rằng, hãy thoải mái làm điều đó trong mã của bạn nếu bạn thích
Tạo lớp trang quản trị của chúng tôiĐược rồi, vậy là chúng ta đã có một ý tưởng khá hay về những gì tạo nên một trang quản trị. Bước tiếp theo là tạo một lớp có thể xử lý các thành phần khác nhau này của trang quản trị. Chúng tôi sẽ đặt tên nó là
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];4
Lớp học
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng tôi hiện đang trống. Nhưng nó sẽ không ở lại như vậy trong một thời gian dài. Hãy bắt đầu thêm những thứ vào nó
Đăng ký lớp trang quản trị của chúng tôi và API plugin
Điều đầu tiên mà chúng ta sẽ xem xét là cách đăng ký lớp trang quản trị của chúng ta với WordPress. Điều này sẽ yêu cầu chúng ta sử dụng hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6 mà chúng ta đã thấy trước đó. Điều đó nói rằng, một điều mà chúng tôi đã không đề cập đến chức năng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6 là chúng tôi không thể gọi nó bất cứ khi nào chúng tôi muốn
Không, chúng tôi cần gọi nó vào một thời điểm cụ thể bằng API plugin. Nếu bạn đang thêm một trang quản trị bình thường, bạn muốn sử dụng hook
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];35. [Đây là điều bạn sẽ làm trong 99% thời gian. ] Nhưng nếu bạn đang tìm cách thêm trang quản trị cho quản trị viên mạng WordPress, bạn muốn sử dụng móc nối
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];36
Điều này có nghĩa là chúng tôi sẽ cần một cách để sử dụng API plugin với
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng tôi. Để giữ cho thiết kế của chúng ta đơn giản, chúng ta sẽ không thiết kế lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 để nó sử dụng plugin API. Chúng tôi sẽ chỉ tưởng tượng rằng plugin của chúng tôi sử dụng một chức năng như thế này
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];
Điều đó nói rằng, bạn có thể muốn đẩy mạnh thiết kế lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của mình hơn nữa và sử dụng plugin API. Thật tuyệt. Có khá nhiều bài viết về API plugin trên trang web này để giúp bạn điều đó. Các bài viết này bao gồm nhiều tùy chọn trong đó một số tùy chọn dễ thực hiện hơn các tùy chọn khác
Truyền đối số cho hàm “add_submenu_page”
Rất có thể bạn đã nhận thấy rằng hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];40 mà chúng ta đã thấy trước đó không thêm trang quản trị. Chúng tôi vừa có một nhận xét đề cập rằng chúng tôi sẽ gọi hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6. Vâng, nhận xét đó đã có để chúng tôi có thể nói về nó. [Mưu mẹo khá thông minh của tôi. ]
Đó là bởi vì chúng ta đã thấy trước đó rằng hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6 sử dụng rất nhiều tham số. Chúng tôi cần một cách để lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng tôi truyền đối số cho nó. Có một vài cách để làm điều này vì vậy hãy dành một chút thời gian để xem xét chúng
Một phương thức với tất cả các đối số
Một cách chúng ta có thể truyền đối số cho hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6 là sử dụng hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];45. Đây là một chức năng PHP đặc biệt mà không nhiều lập trình viên PHP biết đến. Nó cho phép bạn gọi một hàm hoặc phương thức cụ thể trong khi truyền cho nó một mảng đối số
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];45 có hai tham số.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];47 và
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];48. Nó hy vọng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];47 có thể gọi được. Cái có thể gọi đó sẽ là hàm hoặc phương thức mà hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];45 sẽ gọi
Tất nhiên, chúng ta đã biết hàm hoặc phương thức nào chúng ta muốn gọi. Đó là chức năng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6. Vì vậy, chúng ta sẽ chỉ chuyển
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6 dưới dạng một chuỗi cho đối số đầu tiên của hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];45
Đối số thứ hai là
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];48. Đó là một mảng các đối số được truyền cho hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];45 sẽ được truyền cho hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];47. Điều quan trọng cần đề cập là hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];45 mong đợi mảng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];48 là một mảng được lập chỉ mục. Bạn không thể sử dụng một mảng kết hợp
Sử dụng chức năng “call_user_func_array”
Vì vậy, đó là tất cả tốt đẹp. Nhưng làm cách nào để lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng ta hoạt động với hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];45?
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
Như bạn có thể thấy, chúng tôi đã thay thế nhận xét của mình bằng lệnh gọi hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];45. Đối số đầu tiên là một chuỗi có
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6 như chúng ta đã nói nó sẽ là. Đối số thứ hai là mảng được trả về bởi phương thức
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];94 của lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng ta
Phương thức
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];94 là cách lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng ta sẽ giao tiếp với hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6. Phương thức trả về các giá trị mà chúng ta muốn truyền cho nó dưới dạng một mảng. Và, như chúng ta đã thấy trước đó, hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];45 muốn mảng được định dạng theo một cách cụ thể
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];3
Trên đây là lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 được cập nhật của chúng tôi với phương thức
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];94. Phương thức trả về một mảng với tất cả các đối số mà chúng ta muốn chuyển đến hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6. Mỗi phần tử mảng này là một tham số mà chúng ta đã đề cập trước đó
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
93 làfunction myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
1 của menu chính của trang quản trị của chúng tôifunction myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
95 vàfunction myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
96 lần lượt làfunction myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
2 vàfunction myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
3 của trang quản trị của chúng tôifunction myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
99 làfunction myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
5 cần thiết để xem trang quản trị của chúng tôifunction myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
71 làfunction myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
8 của trang quản trị của chúng tôifunction myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
73 là cuộc gọi lạifunction myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];
9 mà WordPress sẽ sử dụng để hiển thị trang quản trị của chúng tôi
Tất cả đều khá đơn giản ngoại trừ cuộc gọi lại
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];9. Chúng ta sẽ nói về việc hiển thị trang quản trị của chúng ta sau. Tuy nhiên, hiện tại, đây là một cách mà chúng ta chuyển đối số cho lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của mình sang hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6
Một phương pháp cho mỗi đối số
Cách thay thế khác là làm hoàn toàn ngược lại. Thay vì sử dụng một phương thức để truyền tất cả các đối số của hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6, chúng ta sử dụng một phương thức cho mỗi đối số. Điều này làm cho lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng ta nặng hơn một chút, nhưng bạn không cần phải dựa vào hàm PHP để gọi hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];4
Như bạn có thể thấy, hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];40 được cập nhật ở trên rất giống với phương pháp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];92 của chúng tôi từ trước đó. Nhưng thay vì trả về một mảng với tất cả các đối số của chúng ta, mỗi đối số sẽ có phương thức riêng. Ngoại lệ duy nhất là cuộc gọi lại
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];9 vẫn giữ nguyên
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];1
Và đây là lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng ta với tất cả các phương thức được sử dụng làm đối số cho hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6. Tất cả các phương pháp này là khá đơn giản. Tất cả chúng đều trả về một chuỗi từ mảng đối số trước đó của chúng ta
Chọn cái nào bạn thích
Không có cách nào tốt nhất để truyền đối số cho hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6. Cả hai đều có ưu điểm và nhược điểm. [Điều này thường xảy ra khi thiết kế một cái gì đó. ]
Sử dụng một phương pháp đơn giản hơn vì bạn chỉ có một phương pháp trái ngược với nhiều phương pháp. Nhưng có nhiều phương pháp cũng hữu ích. Bạn có thể muốn sử dụng lại một số phương thức này trong mã của mình
Vì vậy, cuối cùng, nó đi đến một sự lựa chọn cá nhân. Tuy nhiên, đối với bài viết này, chúng tôi sẽ sử dụng tùy chọn thứ hai. Đó là bởi vì chúng tôi sẽ sử dụng lại một số phương pháp này trong mã của chúng tôi
Định cấu hình trang quản trị của chúng tôi
Bây giờ chúng ta đã thấy cách đăng ký trang quản trị của mình, chúng ta vẫn phải định cấu hình nó. Đây là bước bắt buộc trước khi chúng tôi xem xét cách chúng tôi sẽ hiển thị nó. Như chúng tôi đã đề cập trước đó trong bài viết, chúng tôi sẽ sử dụng API cài đặt để thực hiện việc này
API cài đặt là chiếc ô cho nhiều tác vụ khác nhau. Nhưng chỉ có hai cái mà chúng tôi quan tâm cho bước cấu hình. Hãy cùng xem qua chúng
Đăng ký cài đặt
Nhiệm vụ đầu tiên mà chúng ta cần làm là đăng ký cài đặt với API. Bạn có thể làm điều này bằng cách sử dụng hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];97. Bạn có thể thấy cách chúng tôi làm điều đó dưới đây
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];9
Bạn có thể thấy bước đầu tiên trong phương pháp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];98 ở trên. Chúng tôi đã sử dụng chức năng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];97 để đăng ký cài đặt với API.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];97 có hai tham số bắt buộc.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];01 và
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];02
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];01 là nhóm cài đặt mà cài đặt sẽ thuộc về. Chúng ta sẽ sử dụng chuỗi trả về phương thức
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];04 cho đối số đó. [Đây là một lý do tại sao chúng tôi đang sử dụng các phương thức riêng lẻ để gọi hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6. ]
Tham số
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];02 là cài đặt thực tế mà chúng tôi muốn đăng ký. Đó là tên của tùy chọn mà chúng tôi sẽ sử dụng trong mã trang quản trị. Trong đoạn mã trên, chúng tôi đã chuyển chuỗi
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];07 làm đối số
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];02
Đăng ký phần và lĩnh vực
Nhiệm vụ thứ hai là đăng ký các phần và trường với API cài đặt. Các phần và trường này là cách để kiểm soát cách WordPress sẽ hiển thị cài đặt của chúng tôi. Hãy cập nhật phương pháp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];98 của chúng tôi trước khi thảo luận thêm về chúng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];9
Chúng tôi đã thêm hai lệnh gọi hàm mới trong phương thức
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];98 ở trên. Đầu tiên là chức năng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];11. Thứ hai là chức năng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];12
Thêm một phần
Chức năng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];11 thêm một phần mới vào trang quản trị của chúng tôi. Nó có bốn tham số.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];14,
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];4,
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];47 và
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];17.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];14 là slug được sử dụng để xác định phần.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];4 là tiêu đề của phần.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];47 là khả năng gọi được sử dụng để xuất nội dung của phần.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];17 là sên của trang quản trị mà phần này thuộc về
Bây giờ, hãy nói về các đối số mà chúng ta chuyển đến hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];11. Như bạn có thể thấy, chúng tôi đã sử dụng nhiều hơn phương pháp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];04 của mình. Chúng tôi đã sử dụng nó với các đối số
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];14 và
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];17
Trong khi đó, chúng tôi đã chuyển một chuỗi đã dịch cho
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];4 của chúng tôi. [Luôn được dịch. ] Cuộc gọi lại là một mảng đề cập đến phương thức
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];27. Chúng ta sẽ xem xét phương pháp đó sau một chút khi chúng ta xem xét hiển thị trang quản trị
Thêm trường
Hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];12 có tham số tương tự như hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];11. Nó có sáu tham số.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];14,
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];4,
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];47,
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];17,
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];34 và
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];35. Bốn cái đầu tiên giống như cái trong hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];11
Hai cái mới là
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];34 và
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];35.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];34 là sên của phần mà trường của chúng ta sẽ xuất hiện.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];35 là một mảng các đối số bổ sung mà bạn có thể chuyển đến hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];12
Đối với bài viết này, chúng tôi chỉ quan tâm đến tham số
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];34. Chúng tôi đã chuyển nó cùng một giá trị
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];14 mà chúng tôi đã cung cấp cho hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];11. Đây là giá trị được trả về bởi phương pháp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];04 của chúng tôi được nối với
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];46
Trong khi đó, bốn đối số đầu tiên hầu như giống với các đối số từ hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];11. Điều đáng được chỉ ra là lập luận được thông qua dưới dạng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];47. Đó là một tham chiếu đến một phương thức mới có tên là
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];49
Kết xuất trang quản trị của chúng tôi
Được rồi. Vì vậy, tại thời điểm này, chúng tôi chưa nói về bất kỳ phương pháp kết xuất nào của chúng tôi. Nhưng bây giờ chúng ta đã hoàn thành tất cả công việc đăng ký và định cấu hình trang quản trị của mình, chúng ta có thể xem phần cuối cùng của câu đố
Trong trường hợp bạn không theo dõi, tổng cộng mã của chúng tôi có ba phương thức hiển thị không xác định. Theo thứ tự xuất hiện, chúng là các phương thức
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];50,
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];27 và
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];49. Công việc của họ là tạo HTML cho các phần của trang quản trị của chúng tôi
Kết xuất HTML bằng các mẫu
Điều này đưa chúng ta đến quyết định thú vị nhất mà chúng ta phải thực hiện khi thiết kế lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của mình. Đó là cách chúng tôi sẽ hiển thị HTML của các trang quản trị của chúng tôi. Đây thực sự là phần thiết kế mà bạn có quyền tự do sáng tạo nhất
Tuy nhiên, như chúng tôi đã đề cập trước đó, chúng tôi sẽ sử dụng một giải pháp mà chúng tôi đã khám phá trong bài viết trước. [Liên kết lại trong trường hợp bạn bỏ lỡ nó. ] Giải pháp đó xoay quanh việc sử dụng các mẫu PHP để tạo nội dung HTML của chúng tôi. Điều này loại bỏ sự liên kết giữa lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng tôi và mã khuôn mẫu HTML
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];7
Điều đầu tiên mà chúng tôi muốn làm để triển khai giải pháp tạo khuôn mẫu HTML của mình là thêm một đường dẫn đến các mẫu trang quản trị của chúng tôi. Chúng tôi đã làm điều này bằng cách thêm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];55 làm tài sản riêng. Chúng tôi cũng đã thêm một hàm tạo có tham số
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];55. Nhà xây dựng chỉ định
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];55 của chúng tôi sau khi chuyển nó qua
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];58 để đảm bảo rằng nó không kết thúc bằng dấu gạch chéo
Tiếp theo, chúng tôi muốn sử dụng thuộc tính
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];55 này để hiển thị các mẫu PHP của chúng tôi. Chúng ta sẽ cần tạo một phương thức để làm điều đó. Bạn có thể thấy nó dưới đây
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];9
Phương thức
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];60 ở trên có một tham số.
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];61. Chúng tôi sử dụng đối số
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];61 để tạo
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];55. Đây là đường dẫn đầy đủ đến tệp mẫu PHP mà chúng tôi muốn kết xuất
Sau đó, chúng tôi chuyển
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];55 thông qua một điều khoản bảo vệ. Trong đó mình dùng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];65 để check xem có đọc được file template không. Nếu không đọc được, chúng tôi quay lại ngay. Nếu không, chúng tôi bao gồm nó
Kết xuất các phần khác nhau của trang quản trị của chúng tôi
Bây giờ chúng ta có phương thức
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];60, chúng ta có thể sử dụng nó để hiển thị các phần khác nhau của trang quản trị. Chúng tôi kết xuất các phần này bằng các phương pháp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];50,
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];27 và
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];49. Đây là ba phương thức cuối cùng của lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 mà chúng ta đã thấy nhưng chưa được triển khai
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];0
Trên đây là lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng tôi với ba phương thức được thêm vào. Như bạn có thể thấy, những phương pháp này không có nhiều mã. Tất cả những gì họ làm là gọi phương thức
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];60 mà chúng ta đã tạo trong phần trước
Mỗi phương thức yêu cầu nó hiển thị một mẫu cụ thể. Đó cũng là nơi mà hầu hết các điều kỳ diệu xảy ra. Vì vậy, đó là những gì chúng ta sẽ xem xét tiếp theo
Mẫu trang
Mẫu đầu tiên và lớn nhất mà chúng tôi cần là mẫu được hiển thị bằng phương pháp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];50. Đây là template chứa hầu hết trang quản trị. Dựa trên quy ước trong
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];60, bạn cần đặt tên cho mẫu này là
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];75
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];1
Vì vậy, đây là nội dung của
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];75. Có khá nhiều thứ đang diễn ra, nhưng hầu hết chỉ là đánh dấu HTML. Điều đó nói rằng, có một vài điều đang diễn ra đáng để vượt qua
Đầu tiên, bạn có thể nhận thấy rất nhiều việc sử dụng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];77 bên trong mẫu. Đó là bởi vì, theo như PHP biết, mẫu vẫn nằm trong phạm vi của lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng tôi. [Ồ. Trippy. ] Điều đó có nghĩa là chúng ta có thể làm những điều tương tự mà chúng ta sẽ làm bên trong một phương thức của lớp thông thường
Đó là lý do tại sao chúng tôi đang sử dụng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];79 bên trong thẻ
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];80. Chúng tôi cũng sử dụng phương pháp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];04 sau này với các chức năng API cài đặt. Nhưng chúng tôi sẽ bao gồm những điều đó trong một giây
Tiếp theo, chúng ta có một câu lệnh
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];82 để kiểm tra xem siêu toàn cục
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];83 có giá trị cho khóa
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];84 hay không. Đây là tham số mà WordPress chuyển dưới dạng chuỗi truy vấn để cho bạn biết rằng nó đã cập nhật các tùy chọn trên trang. Nếu nó không trống, chúng tôi sẽ hiển thị một thông báo cho biết rằng chúng tôi đã cập nhật cài đặt của plugin
Cuối cùng, chúng ta có một biểu mẫu và bên trong là các chức năng API cài đặt mà chúng ta đã đề cập trước đó. Bạn phải đặt hai chức năng này bên trong thẻ
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];85. Nếu không, HTML mà chúng xuất ra sẽ không hoạt động
Cái đầu tiên là hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];86. Đây là hàm xuất giá trị ẩn nonce và
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];87 cho trang quản trị. Không có chúng, WordPress sẽ không xử lý biểu mẫu trang quản trị đã gửi của bạn
Chức năng thứ hai là
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];88. Nó hiển thị tất cả HTML cho các phần và trường mà chúng tôi đã đăng ký trước đó. HTML duy nhất mà nó không hiển thị là nút gửi. Đó là lý do tại sao chúng tôi sử dụng chức năng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];89 sau
Mẫu trường phần và tùy chọn
Hai mẫu còn lại không có cùng mức độ phức tạp như mẫu
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];75. Mẫu
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];91 thường chỉ có vài từ. Một cái gì đó để đi dưới tiêu đề phần của bạn để mô tả các lĩnh vực đã đăng ký trong phần đó
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];2
Mẫu mã ở trên là tất cả những gì có trong mẫu
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];91 của chúng tôi. Bạn không nên quên rằng bạn cần đặt văn bản của mình bên trong thẻ
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];93. Bạn cũng không nên quên dịch văn bản của mình nếu plugin của bạn hỗ trợ quốc tế hóa. [Mà nó nên. ]
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];3
Mẫu
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];94 phức tạp hơn một chút. [Nhưng không quá nhiều. ] Nó cần hiển thị phần tử
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];95 với giá trị của tùy chọn. Chúng tôi sử dụng hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];96 để lấy giá trị đó từ cơ sở dữ liệu WordPress. [Nếu bạn không muốn sử dụng WordPress luôn, hãy tạo một lớp để tương tác với các tùy chọn WordPress. ]
Tên
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];07 được sử dụng trong thẻ
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];95 và hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];96 có từ trước đó trong bài viết. Đó là tên của cài đặt mà chúng tôi đã đăng ký bằng hàm
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; call_user_func_array['add_submenu_page', $admin_page->get_page_arguments[]]; } add_action['admin_menu', 'myplugin_add_admin_page'];97. [Cái này cách đây ít lâu nên bạn có thể đã quên nó đến từ đâu. ]Một điểm khởi đầu tốt
Và điều này kết thúc mọi thứ cho lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 của chúng ta. Chúng tôi đã phải trải qua rất nhiều thứ khác nhau để xây dựng nó. Nhưng đây là điều có thể xảy ra khi thiết kế các lớp phức tạp hơn
Và một điều cuối cùng. Bạn cũng không cần phải xem qua bài viết để ghép tất cả các mẫu mã lại với nhau. Bạn có thể tìm mã cho toàn bộ lớp
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 bên dưới
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];4
Chúng tôi cũng đã thấy sớm trong bài viết rằng chúng tôi cần một cách để đăng ký trang quản trị của chúng tôi. Chúng tôi đã phải sử dụng chức năng
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];6 để làm điều đó. Dưới đây là cách chúng tôi đang thực hiện với
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];31 mà chúng tôi đã thiết kế
function myplugin_add_admin_page[] { $admin_page = new MyPlugin_AdminPage[]; // Call add_submenu_page function } add_action['admin_menu', 'myplugin_add_admin_page'];4
Điều này sẽ cung cấp cho bạn tất cả các khối xây dựng mà bạn cần để xây dựng các lớp trang quản trị của riêng bạn. Tất cả những gì còn lại là để bạn thực hiện nó trong dự án của riêng bạn. Vui lòng để lại bất kỳ câu hỏi triển khai cụ thể nào mà bạn có thể có trong phần nhận xét