Hướng dẫn custom field in wordpress - trường tùy chỉnh trong wordpress




Một trong số các tính năng mạnh mẽ trong WordPress có thể giúp các lập trình viên có thể thêm nhiều tính năng hay trong các bài viết trong WordPress, đó là tính năng Custom Field. Hầu hết hiện nay chúng ta không sử dụng custom field độc lập nhưng hiểu custom field là nền tảng quan trọng để sau này bạn tìm hiểu thêm Meta Boxes hoặc các plugin thông dụng như Advanced Custom Field.

Custom Field là gì?

Giải thích ngắn gọn thì đó là một dữ liệu bổ sung để thêm vào các bài viết (Post, Page). Nghĩa là chúng ta có thể thêm một cột dữ liệu trong mỗi bài viết để nó mang một giá trị tương ứng. Ví dụ như mặc định WordPress chỉ hỗ trợ nhập tiêu đề bài viết, nhưng với Custom Field bạn có thể thêm một trường dữ liệu kiểu như Tiêu đề phụ chẳng hạn.

Hướng dẫn ứng dụng Custom Field

Các bạn vào Posts -> Add New và nhìn xuống dưới sẽ thấy cái khung Custom Field này. Posts -> Add New và nhìn xuống dưới sẽ thấy cái khung Custom Field này.

Hướng dẫn custom field in wordpress - trường tùy chỉnh trong wordpress

Nếu không thấy thì các bạn nhìn tít lên trên, bấm vào chữ Screen Options và tick dấu vào Custom Field.

Hướng dẫn custom field in wordpress - trường tùy chỉnh trong wordpress
Bây giờ các bạn thử thêm Meta Key (tên địa diện của field) với Value (giá trị của field) như sau: Meta Key (tên địa diện của field) với Value (giá trị của field) như sau:

Hướng dẫn custom field in wordpress - trường tùy chỉnh trong wordpress

Thêm custom field và giá trị của nó vào bài

Thêm xong nhớ ấn nút Add Custom Field.Add Custom Field.

Trong đó,

  • tp_country : Là tên đại diện của field của bạn.
  • Sweden : Giá trị của field.

Ok, vậy là chúng ta đã hoàn tất việc khai báo xong các meta key và giá trị của nó.

Dữ liệu custom field lưu vào đâu?

Các dữ liệu từ custom field sẽ được lưu lại thành các Post Metadata và nằm trong bảng wp_postmeta trong database (xem ở các trang cuối).

Hướng dẫn custom field in wordpress - trường tùy chỉnh trong wordpress
Trong đó, bạn sẽ thấy tên key (meta_key), ID của bài viết chưa key (post_id) và giá trị của nó (meta_value). Và khi bạn dùng field này cho nhiều bài viết khác nhau thì nó cũng sẽ có thêm nhiều hàng dữ liệu có meta_key giống nhau nhưng sẽ có post_id khác nhau.

Các hàm hiển thị giá trị custom field

Nếu bạn muốn lấy giá trị của field nào đó trong bài viết ra hiển thị bên ngoài (như template single.php chẳng hạn) thì bạn có thể sử dụng nhiều hàm khác nhau.

get_post_meta()

Hàm này thích hợp sử dụng nếu bạn cần lấy giá trị của một field nào đó dựa vào Post ID đang chứa field.

Cách sử dụng: get_post_meta( $post, $meta_key, $single )

Trong đó,

  • tp_country : Là tên đại diện của field của bạn.
  • Sweden : Giá trị của field.
  • Ok, vậy là chúng ta đã hoàn tất việc khai báo xong các meta key và giá trị của nó.

Dữ liệu custom field lưu vào đâu?


                    $tp_country = get_post_meta( $post->ID, ‘tp_country’, true );

                         if( $tp_country ) { // kiểm tra xem nó có dữ liệu hay không
                echo ‘Country: ‘ . $tp_country . ‘
’;
            }
        ?>

the_meta()

Các dữ liệu từ custom field sẽ được lưu lại thành các Post Metadata và nằm trong bảng wp_postmeta trong database (xem ở các trang cuối).

get_post_custom()

Trong đó, bạn sẽ thấy tên key (meta_key), ID của bài viết chưa key (post_id) và giá trị của nó (meta_value). Và khi bạn dùng field này cho nhiều bài viết khác nhau thì nó cũng sẽ có thêm nhiều hàng dữ liệu có meta_key giống nhau nhưng sẽ có post_id khác nhau.

Các hàm hiển thị giá trị custom field

Nếu bạn muốn lấy giá trị của field nào đó trong bài viết ra hiển thị bên ngoài (như template single.php chẳng hạn) thì bạn có thể sử dụng nhiều hàm khác nhau.


                    $tp_field = get_post_custom();

                         echo ‘

’;
            print_r( $tp_field );
            echo ‘
’;

                     ?>

Hàm này thích hợp sử dụng nếu bạn cần lấy giá trị của một field nào đó dựa vào Post ID đang chứa field.

Cách sử dụng: get_post_meta( $post, $meta_key, $single )

$post: Là ID của bài viết cần lấy custom field.

update_post_meta()

$meta_key: tên key của field cần lấy trong bài viết. Mặc định sẽ lấy toàn bộ field có trong post.

$single: Tuỳ chọn hiển thị một giá trị hay một mảng giá trị. Mặc định là false (hiển thị mảng).

Trong đó,

  • tp_country : Là tên đại diện của field của bạn.
  • Sweden : Giá trị của field.
  • Ok, vậy là chúng ta đã hoàn tất việc khai báo xong các meta key và giá trị của nó.
  • Dữ liệu custom field lưu vào đâu?

Các dữ liệu từ custom field sẽ được lưu lại thành các Post Metadata và nằm trong bảng wp_postmeta trong database (xem ở các trang cuối).


// Đổi giá trị ‘tp_country’ của post_id là 15 sang giá trị ‘Viet Nam’
update_post_meta( 15, ‘tp_country’, ‘Viet Nam’ );

Trong đó, bạn sẽ thấy tên key (meta_key), ID của bài viết chưa key (post_id) và giá trị của nó (meta_value). Và khi bạn dùng field này cho nhiều bài viết khác nhau thì nó cũng sẽ có thêm nhiều hàng dữ liệu có meta_key giống nhau nhưng sẽ có post_id khác nhau.

delete_post_meta()

Các hàm hiển thị giá trị custom field

Nếu bạn muốn lấy giá trị của field nào đó trong bài viết ra hiển thị bên ngoài (như template single.php chẳng hạn) thì bạn có thể sử dụng nhiều hàm khác nhau.

Trong đó,

  • tp_country : Là tên đại diện của field của bạn.
  • Sweden : Giá trị của field.
  • Ok, vậy là chúng ta đã hoàn tất việc khai báo xong các meta key và giá trị của nó.

Ví dụ sử dụng:


// Xoá toàn bộ giá trị trong key ‘tp_country’ của post_id là 15
delete_post_meta( 15, ‘tp_country’, ‘Viet Nam’ );

Lời kết

Như vậy là trong bài viết này bạn đã làm quen được với tính năng Custom Field trong WordPress, và đây là một tính năng vô cùng thú vị.

Trên thực tế khi làm việc với custom field, ít ai làm thủ công như thế này mà họ sẽ kết hợp với meta box để tạo thêm 1 số khung nhập liệu đẹp mắt dưới khung viết bài. Nếu bạn muốn tạo, có thể xem qua hướng dẫn ACF để làm nhé.

Thạch Phạm

Bé Thạch 18 tuổi, hiện công tác tại AZDIGI với vị trí giữ xe và viết thuê tại ThachPham.Com. Sở thích nghiên cứu về website, DevOps, SysAdmin và xăm mình nữa. Phương châm sống của bé là "No Pain, No Gain".

Hiện tại blog tạm đóng bình luận vì mình cần tập trung thời gian vào cập nhật bài viết. Bình luận sẽ mở ra cho đến khi mình sẵn sàng.