Trang chủ » WordPress » Hiểu về hộp meta tùy chỉnh WordPress

    Hiểu về hộp meta tùy chỉnh WordPress

    Trong bài trước, chúng tôi đã nói về trường tùy chỉnh WordPress, cho phép bạn thêm và xuất một mục mới trong bài đăng bằng hộp Trường tùy chỉnh mà WordPress cung cấp trong màn hình chỉnh sửa bài. Tuy nhiên, nếu bạn không thoải mái khi sử dụng hộp trường tùy chỉnh (tất cả chúng ta đều có sở thích riêng của chúng tôi), thì đây là một lựa chọn thay thế: bạn có thể tạo hộp meta.

    Một hộp meta là một hộp tùy chỉnh mà chúng ta tự tạo ra, có thể chứa đầu vào hoặc giao diện người dùng tương tác khác để thêm các mục mới của bài viết hoặc trang. Bạn có thể sử dụng hộp meta thay vì hộp Trường tùy chỉnh để thực hiện điều tương tự. Hãy xem cách tạo một cái.

    Thêm thông tin trên Hongkiat.com:

    • Tùy chỉnh thư mục tải lên phương tiện trong WordPress
    • Tùy chỉnh các kiểu trình soạn thảo WordPress
    • Tùy chỉnh “Bao nhiêu” Trong thanh quản trị WordPress
    • Đăng ký phân loại tùy chỉnh cho người dùng WordPress
    • Biểu tượng hiển thị Trong menu WordPress

    Tạo một hộp Meta

    WordPress cung cấp một hàm API, được gọi là add_meta_box, cho phép chúng tôi tạo ra một hộp meta ngay lập tức. Đây là nó ở dạng cơ bản tối đa của nó.

     hàm add_post_Vference () add_meta_box ('tham chiếu bài', 'Tham chiếu', 'tham chiếuCallBack', 'bài');  add_action ('add_meta_boxes', 'add_post_Vference'); chức năng tham khảoCallBack () echo 'Hello World' 

    Các add_meta_box có bốn tham số: ID, tiêu đề hộp meta, chức năng gọi lại sẽ gọi ra 'Hello World' và loại bài đăng chúng tôi muốn hiển thị. Trong trường hợp này, chúng tôi chỉ định một hộp meta mới trong trang chỉnh sửa bài đăng (điều này cũng hoạt động với các trang).

    Trong phần chỉnh sửa bài đăng, bạn sẽ tìm thấy một hộp mới, như sau.

    Hộp meta mới, như bạn có thể thấy ở trên, sẽ xuất hiện bên dưới trình soạn thảo WYSIWYG. Nếu bạn muốn thêm nó vào thanh bên, bạn có thể thêm 'bên' sau tham số bài đăng và cùng với 'cao' nếu bạn muốn đặt nó ở trên cùng của thanh bên.

     chức năng add_post_Vference () add_meta_box ('tham chiếu bài', 'Tham khảo', 'tham chiếuCallBack', 'bài', 'bên', 'cao');  add_action ('add_meta_boxes', 'add_post_Vference'); 

    Bây giờ bạn sẽ tìm thấy nó ở trên Công bố cái hộp…

    Bây giờ để thay thế văn bản 'Hello World' trong đó. Hãy thêm các yếu tố như trường đầu vào cho mục nhập mới.

    Trong ví dụ này, chúng tôi sẽ thêm hai trường đầu vào bao gồm một để thêm Tên tham chiếu và một trường khác cho Liên kết tham chiếu:

     chức năng tham khảoCallBack ($ post) wp_nonce_field ('Reference_meta_box', 'Reference_nonce'); $ name_value = get_post_meta ($ post-> ID, '_post_Vference_name', true); $ link_value = get_post_meta ($ post-> ID, '_post_Vference_link', true); tiếng vang ''; tiếng vang ''; tiếng vang '

    '. 'Thêm tên của tài liệu tham khảo'. '

    '; tiếng vang ''; tiếng vang ''; tiếng vang '

    '. 'Thêm liên kết của tài liệu tham khảo'. '

    ';

    Làm mới trang chỉnh sửa bài đăng và bạn sẽ thấy hai đầu vào này được thêm vào.

    Các $ name_value$ link_value biến sẽ lấy các mục từ cơ sở dữ liệu và đưa chúng vào các trường đầu vào. Để có được các mục vào cơ sở dữ liệu, chúng ta sẽ cần tạo một hàm cho điều đó.

    Chúng ta cần thêm một vài dòng mã sẽ điền các mục được thêm thông qua các đầu vào này vào cơ sở dữ liệu một cách an toàn. “An toàn” ở đây có nghĩa là một mục nhập hợp pháp và được ủy quyền (không phải là mục nhập từ tin tặc hoặc nhân viên trái phép khác). Để lưu mục, chúng ta sẽ phải tạo một chức năng mới. Hãy đặt tên cho hàm: save_post_Vference, như vậy.

     chức năng save_post_Vference ($ post_id)  ​​add_action ('save_post', 'save_post_Vference'); 

    Như chúng tôi đã đề cập, chúng tôi cần xác minh một số điều cho mục đích bảo mật:

    (1) Chúng tôi sẽ cần kiểm tra xem người dùng có khả năng chỉnh sửa bài viết.

     if (! current_user_can ('edit_post', $ post_id)) return;  

    (2) Chúng ta cũng cần phải kiểm tra xem Nonce đã được đặt chưa.

     if (! [et ($ _POST ['Reference_nonce'])) return;  if (! wp_verify_nonce ($ _POST ['Reference_nonce'], 'Reference_meta_box')) return;  

    (3) Sau đó, chúng ta cần ngăn dữ liệu được lưu tự động. Việc tiết kiệm chỉ có thể được thực hiện khi “Tiết kiệm” hoặc là “Cập nhật” nút đã được bấm.

     if (được xác định ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;  

    (4) Chúng tôi cũng sẽ phải đảm bảo rằng hai đầu vào của chúng tôi, post_Vference_namepost_Vference_link, được thiết lập và sẵn sàng trước khi chúng tôi gửi các mục.

     if (! [et ($ _POST ['post_Vference_name']) ||! [et ($ _POST ['post_Vference_link'])) return;  

    (5) Và mục nhập không được có bất kỳ ký tự bất ngờ nào có thể ảnh hưởng đến bảo mật trang web. Để kiểm tra điều này, bạn có thể sử dụng chức năng tích hợp sẵn của WordPress sanitize bản_field.

     $ Reference_name = sanitize bản_field ($ _POST ['post_Vference_name']); $ Reference_link = sanitize bản_field ($ _POST ['post_Vference_link']); 

    Được rồi, bây giờ chúng tôi đã sẵn sàng để lưu các mục vào cơ sở dữ liệu:

     update_post_meta ($ post_id, '_post_Vference_name', $ Reference_name); update_post_meta ($ post_id, '_post_Vference_link', $ Reference_link); 

    Bây giờ bạn có thể dùng thử: nhập một số nội dung vào các trường nhập và nhấp vào “Cập nhật” nút để lưu chúng.

    Phần kết luận

    Chúng tôi vừa tạo một hộp meta bao gồm hai đầu vào. Bạn có thể mở rộng thêm hộp với các loại đầu vào khác như nút radio hoặc hộp chọn. Ví dụ này có thể rất cơ bản nhưng một khi bạn hiểu rõ về nó, bạn sẽ có thể sử dụng hộp meta này cho các mục đích sử dụng phức tạp hơn nhiều. Hãy cho chúng tôi biết nếu bạn sẽ sử dụng cái này và bạn sẽ sử dụng nó để làm gì.