Sử dụng do_shortcode để hiển thị shortcode của Contact Form 7

Xin chào tất cả các bạn, bữa nay Thịnh rảnh rỗi chia sẻ với các bạn cách hiển thị được shortcode của contact form 7 trên bất kỳ vị trí nào của site.

Như các bạn đã biết Contact Form 7 là một plugins khá nổi tiếng dành cho wordpress. Sở dĩ nó nổi tiếng không chỉ khả năng đáp ứng mà nó còn cho bạn tùy biến form giúp cho website của bạn linh hoạt hơn. Tuy nhiên vấn đề đó là hiển thị nó trên themes của bạn là điều không ai để ý tới. Nếu như bạn là người dùng nó quen và biết cách thì không sao nhưng đối với những bạn mới làm quen thì chắc hẳn sẽ loay hoay làm sao để contact form 7 hiển thị được form thay vì một đoạn mã shortcode.

Để giải đáp thắc mắc thì mình sẽ làm một ví dụ đơn giản như sau để bạn hiểu được.

Ví dụ:

Đây là một đoạn mã shortcode của Contact Form 7


Error: Contact form not found.

Cụ thể là

contact-form-7 id="97" title="Đặt hẹn"

nằm trong dấu ngoặc vuông []

Đoạn mã trên khi mà nhúng vào themes thì nó không hiển thị chính vì thếm mình cho nó vào phần Theme Options và sau đó mình sử dụng câu lệnh để lấy ra như sau


if ( ! function_exists( 'thinhweb_dat_hen' ) ) {
function thinhweb_dat_hen() { ?>
        <?php get_option_tree(); ?>
        <?php if( get_option_tree('dat_hen') ) { echo do_shortcode( ''.ot_get_option('dat_hen').'' ); } else { printf( '' ); } ?>
       <?php
    }
}

Ở đoạn code trên, shortcode của Contact Form 7 được lưu trong theme options của plugin optiontree sau đó mình tiến hành khai báo nó để có thể sử dụng gọi các thành phần bên trong thông qua


<?php get_option_tree(); ?>

Tiếp theo mình kiểm tra câu lệnh nếu nó có shortcode đó thì cho xuất ra thông qua do_shortcode, còn không thì cho rỗng.

Hàm mặc định do_shortcode do wordpress quy định dùng để hiển thị shortcode mà bạn lấy ra. Nếu như bạn có các shortcode kiểu khác thì bạn bắt buộc phải khai báo.

Tiếp đến là bạn chỉ việc khai báo function thinhweb_dat_hen ở bất cứ vị trí nào trong themes: <?php thinhweb_dat_hen(); ?>

Đó đơn giản chỉ có vậy. Mọi thắc mắc các bạn có thể gửi bình luận để mình giải thích thêm!