- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Mặc định wordpress có hỗ trợ trường tùy biến cho bài viết, bạn có thể tạo thêm trường khác ngoài sử dụng trường nội dung, tóm tắt (excerpt) trong khi đăng bài và có thể có các fields khác được tạo bởi plugins bạn kích hoạt.
Bạn có thể tìm thấy tất cả các mục meta box cho phép bạn cài đặt nội dung của post liệt kê trong danh sách chứa ở menu Screen Options.
Kích hoạt Custom Fields
Nếu tính năng bạn cần chưa xuất hiện trong cửa sổ edit post , thì chọn vào Screen Options, tính năng nào chưa bật thì checkbox vào tính năng đó để kích hoạt lên.
Nếu nhìn thấy mục Custom Field chưa chọn thì nhấn vào, kéo xuống dưới bạn sẽ nhìn thấy metabox Custom Fields như hình dưới.
Tạo custom field
Để tạo field mới, bạn nhập tên cho field tại trường Name và giá trị cho field ở trường value bên cạnh. Sau đó nhấn nút Add Custom Field.
Làm tương tự cho các fields bạn tạo mới. Hoàn tất chúng ta lưu lại bài viết bằng cách nhấn Publish/Update.
Chú ý: viết tên field không được chứa dấu “_” ở trước, cách viết tên custom fields này quy định cho fields đặc biệt sử dụng trong wordpress. Bạn sẽ nhận được thông báo lỗi
Please provide a custom field value.
:
Nếu bạn muốn tạo thêm custom field mới, trong lần sửa lại bài viết tiếp theo lúc này post đã định hình các custom fields bạn có tạo trước đó. Để tạo thêm trường thì nhấn vào liên kết Enter new.
Lưu lại field này bạn cũng nhấn vào Add Custom Field.
Lấy giá trị custom Field của post
Như vậy là chúng ta đã biết cách tạo custom fields cho bài viết, mà không cần xây dựng các custom field cố định bằng cách tạo custom post type trong wordpress làm gì cho nặng nhọc, rất đơn giản phải không.
Các trường tùy biến này được truy vấn bởi hàm get_post_meta
. Ví dụ sau tôi lấy giá trị của field ‘field1’ như thiết lập với post ở trên. Chèn dòng code dưới đây vào trong loop.
while(have_posts()): .... $key_1_value = get_post_meta( get_the_ID(), 'field1', true ); // check if the custom field has a value if( ! empty( $key_1_value ) ) { echo $key_1_value; //return string "value1" } .... endwhile;
Tham số thứ 3 của get_post_meta có giá trị true sẽ trả về giá trị của trường tùy biến, nếu thiết lập false hàm trả về dữ liệu mảng cho custom field. Mặc định tham sô này là false.
Ví dụ tiếp theo trả về mảng dữ liệu chứa toàn bộ custom fields và giá trị của nó có trong post.
$customs=get_post_meta( get_the_ID()); print_r($customs);
In biến $customs, sẽ có cấu trúc giống thế này, tùy theo customs có trong post
Array ( [_edit_lock] => Array ( [0] => 1411736596:1 ) [_edit_last] => Array ( [0] => 1 ) [_thumbnail_id] => Array ( [0] => 16 ) [gia] => Array ( [0] => 350.000 ) [hw_total_sale] => Array ( [0] => 6 ) )
Custom field là một phần của hệ thống wordpress, giúp bạn tạo fields sử dụng với mục đích riêng cho dữ liệu bài viết của mình. Một số tính năng khác có trong post có thể sử dụng tính năng custom field. Ví dụ, tạo feature image cho wordpress là một điển hình, khi thiết lập thumbnail cho bài viết nó sẽ tạo thêm trường “thumb” và giá trị là đường dẫn ảnh có kích thước thumbnail.
<?php if ( get_post_meta( get_the_ID(), 'thumb', true ) ) : ?> <a href="<?php the_permalink() ?>" rel="bookmark"> <img class="thumb" src="<?php echo get_post_meta( get_the_ID(), 'thumb', true ); ?>" alt="<?php the_title(); ?>" /> </a> <?php endif; ?>
Tính năng feature image đã thêm động field bởi hàm add_post_meta
. Bạn có thể sử dụng hàm tạo custom field cho mọi nội dung post type.
add_post_meta($post_id, $meta_key, $meta_value, $unique);
Tùy chọn $unique
cho phép không tạo trùng field, có 2 hướng sử lý chèn đè nội dung của field đã tồn tại hoặc không. $unique=true sẽ bỏ qua không thay thế giá trị mới cho field đã tạo trước đó.
Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Ly says
Chào bạn,
Mình post bài mới trên wordpress, nhưng khi đăng xuất admin thì bài viết mới không hiển thị trên trang web. Nhưng khi đăng nhập admin thì trên trang web vẫn xuất hiện, cho mình biết mình sửa như thế nào ạ! mình cảm ơn
Hoàng Quách says
Bạn xóa cache trình duyệt và cache wordpress, cũng cần xóa files trong thư mục wp-content/cache
Ngoài ra, một số hosting có hỗ trợ cache riêng (vd: siteground).