
Khi tạo plugin hoặc một bài trong Website WordPress, chúng ta thường muốn thực hiện các hành động sau một hành vi nhất định, chẳng hạn như sau khi lưu bài đăng hoặc tạo người dùng.
Đối với điều này, WordPress cung cấp các action (hook). Ý tưởng chính xác là như vậy, khả năng bạn thực hiện một số hành động sau một số thủ tục, do đó mở rộng các cách để tăng dần.
Bên cạnh việc sử dụng các action (hook) của WordPress hoặc các plugin như WooCommerce, bạn cũng có thể tạo nó trong các plugin hoặc một bài của mình để người dùng sử dụng tài nguyên có tùy chọn này.
Về cơ bản để xác định một hành động, bạn sẽ sử dụng hàm do_action, nơi bạn sẽ xác định tên của hành động sẽ được thực thi và các tham số sẽ có sẵn cho hàm này sẽ sử dụng.
do_action (HOOK_NAME, PARAMETERS ...);
Chúng ta sẽ thấy điều này trong thực tế
Giả sử bạn đã tạo một bài và trong bài đó, bạn đã tạo một bộ đếm lượt xem bài đăng. Tôi sẽ đặt một số mã để minh họa tình huống này:
// ID do Post $ post_id = 5; // Đổi từ số lượng xem trước trường tùy chỉnh $ counter = (int) get_post_meta ($ post_id, 'counter', true); // Thêm 1 dấu cộng vào giá trị đã đổi $ tổng = $ bộ đếm + 1; // Cập nhật trường tùy chỉnh với giá trị mới update_post_meta ($ post_id, 'counter', $ total);
Bây giờ bạn muốn cung cấp bài này và giúp mọi người có thể thực hiện các hành động và không cần phải làm rối với những gì bạn đã tạo.
Vì vậy, thực hiện một hành động có sẵn ngay sau khi thực hiện đếm và hãy chuyển ID bài đăng và số lượng hiện tại.
do_action ('counter_ after', $ post_id, $total);
Chúng ta chuyển tên của hành động. Với tên này, người dùng có thể thực hiện hành động của mình. Và chúng ta cũng truyền biến $ post_id và cả biến $total.
Và chỉ với mã này, chúng tôi đã cho phép người dùng sử dụng một bài để thực hiện các hành động mà không cần phải thay đổi mã của họ.
Và bạn sẽ sử dụng hành động này như thế nào?
Giả sử một người dùng muốn thêm tổng lượt xem của một bài đăng khi ai đó đăng nhập vào WordPress.
Đầu tiên, trong functions.php, chúng ta sẽ tạo hàm này:
// Định nghĩa hàm function custom_counter_customer ($ post_id, $ total) { // Kiểm tra xem khách đã đăng nhập chưa if (is_user_logged_in ()) { // truy xuất từ trường tùy chỉnh $ current = (int) get_post_meta ($ post_id, 'counter_customer', true); // Cập nhật với giá trị mới update_post_meta ($ post_id, 'counter_customer', $ current + 1); } }
Chỉ tạo một chức năng thôi là chưa đủ, chúng ta cần nói với WordPress rằng chúng ta muốn nó thực hiện chức năng này trong một phần cụ thể. Đối với điều này, chúng tôi sẽ sử dụng hàm add_action. Trong đó, chúng ta cần thông báo hook nào chúng ta muốn được kích hoạt, tên hàm của chúng ta, thứ tự hàm sẽ được thực thi và số lượng tham số sẽ có trong nó.
add_action ('counter_fter', 'custom_counter_customer', 10, 2);
Trong tham số đầu tiên, chúng tôi nói hook sẽ là gì, trong trường hợp counter_ sau khi nó được tạo. Sau đó, tên của vai trò của chúng tôi, đó là custom_counter_customer. Thứ ba là thứ tự nó sẽ được thực thi, theo mặc định là 10. Bạn sẽ đặt một giá trị cao hơn nếu bạn muốn nó được thực thi sau hoặc trước, vì bạn có thể có các chức năng khác bằng hành động này. Thứ tư là số tham số mà hàm của chúng ta sẽ có, trong trường hợp hai.
Đề xuất Đọc: Thiết kế Website WordPress Giải Pháp tốt Nhất trên internet