Viết function chỉ thực hiện một lần duy nhất trong WordPress

Viết function chỉ thực hiện một lần duy nhất trong WordPress

24/08/2024 - 41

Đôi khi, bạn viết một function và chỉ muốn thực hiện nó một lần duy nhất. Và trong bài viết này, mình sẽ hướng dẫn bạn cách đơn giản nhất để thực hiện. Bắt đầu thôi!



Chức năng nào chỉ thực hiện một lần duy nhất?

Có rất nhiều tình huống mà chúng ta chỉ cần chạy chức năng một lần duy nhất trong WordPress. Đặc biệt là khi bạn là một lập trình viên plugin hoặc theme, muốn thực hiện chức năng chỉ một lần khi theme hoặc plugin của bạn được kích hoạt như:

  • Tạo bảng mới trong database của WordPress.
  • Chèn, hoặc cập nhập dữ liệu.
  • Tạo người dùng mới.
  • Xoá vai trò người dùng.
  • Khác.

Thực hiện chức năng một lần

Nếu bạn là một lập trình viên WordPress, có thể bạn sẽ biết đến hàm get_option. Hàm này sẽ lấy giá trị của một option, và trả về false nếu giá trị đó không tồn tại.

<?php
function hk_run_code_one_time() {
    if ( !get_option('run_only_once') ):
 
        // Đặt code bạn muốn thực hiện ở đây
 
        add_option('run_only_once', 1); 
    endif;
}
add_action( 'init', 'hk_run_code_one_time' );

Ở đoạn code trên, mình tận dùng hàm get_option() để kiểm tra xem option run_only_once có tồn tại giá trị hay chưa. Nếu chưa thì sẽ thực thi code, sau đó dùng hàm add_option để gắn giá trị cho option run_only_once.

Sau khi giá trị của run_only_once được gắn, đoạn code trên sẽ không bao giờ được thực thi lại nữa.

Nếu bạn muốn chạy lại để kiểm tra, bạn có thể tìm và xoá option run_only_once ở bảng wp_options trong database WordPress.

Hoặc sử dụng hàm delete_option, cụ thể là delete_option('run_only_once') để loại bỏ option.

Lời kết

Mình hi vọng bài viết này sẽ giúp bạn viết được function chỉ thực thi một lần duy nhất trong WordPress.

Hãy để lại bình luận nếu bạn có bất kì câu hỏi nào. Nếu bạn thấy bài viết nãy hữu ích, bạn có thể theo dõi chuyên mục Thủ thuật WordPress và follow Facebook để biết thêm nhiều kiến thức mới nha.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bài viết liên quan
Contact Me on Zalo