Wordpress Dev

Tự động tạo page cho website khi kích hoạt giao diện nếu không tồn tại

Bài toán như sau: Gói giao diện của các bạn cần phải tạo tự động hai trang là trang Ajax và trang …

Bài toán như sau:

Gói giao diện của các bạn cần phải tạo tự động hai trang là trang Ajax và trang Checkout để hoạt động, nếu khách hàng biết thì không sao, hoặc nếu các bạn hỗ trợ cài đặt thì chẳng sao cả, nhưng nếu trường hợp khác là bán hàng loạt trên Internet và bạn không thể cấu hình cho từng khách hàng một thì sao ?

Tôi cũng tham khảo trên Internet và tìm ra được phương án tối ưu, đó là tự động tạo ra các page với nội dung có sẵn để khách hàng đỡ phải tạo, cũng là để giao diện cứ thế chạy trơn:

if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php' ) {
        if( ! get_page_by_title( 'ajax' ) ) {
            jam_create_pages_auto('Ajax', 'Đừng xóa vì đây là trang mặc định cho giao diện hoạt động !');
        }
        
        if( ! get_page_by_title( 'checkout' ) ) {
            jam_create_pages_auto('Checkout', 'Đừng xóa vì đây là trang mặc định cho giao diện hoạt động !');
        }
    }
    
    function jam_create_pages_auto($pageName, $content) {
        $createPage = array(
          'post_title'    => $pageName,
          'post_content'  => $content,
          'post_status'   => 'publish',
          'post_type'     => 'page',
          'post_name'     => sanitize_title($pageName)
        );
        // Insert the post into the database
        wp_insert_post( $createPage );
    }

Trong đoạn code trên, tôi kiểm tra xem nếu trong admin đang active giao diện của mình, thì kiểm tra tiếp xem các trang đã tồn tại hay chưa bằng hàm get_page_by_title() sau đó mới tạo, hàm jam_create_post_auto() sẽ giải quyết giúp chúng ta.

Trong trang mình tạo sẽ có nội dung thế nào cũng được, và thông thường tôi chẳng cần quan tâm tới nội dung trang vì tôi tạo ra các file page-{name}.php trong gói giao diện, ở đó sẽ thực thi và hiển thị những gì chúng ta thích, và chỉ cần nó tồn tại.

Chúc các bạn vui vẻ !

Thông tin liên quan