2 cách tạo mục dịch vụ trong website WordPress

Giới thiệu về Mục Dịch Vụ trong WordPress
Mục dịch vụ là một phần quan trọng của nhiều trang web, đặc biệt là các trang web của doanh nghiệp và freelancer. Mục này giúp bạn giới thiệu các dịch vụ mà bạn cung cấp một cách rõ ràng và chuyên nghiệp, từ đó thu hút khách hàng tiềm năng. Trong WordPress, có nhiều cách để tạo mục dịch vụ hiệu quả. Bài viết này sẽ hướng dẫn bạn 2 cách phổ biến để tạo mục dịch vụ trong website WordPress của bạn.
Cách 1: Sử dụng Plugin Chuyên Dụng
Một trong những cách đơn giản và hiệu quả nhất để tạo mục dịch vụ là sử dụng các plugin chuyên dụng. Các plugin này thường cung cấp các tính năng tùy biến cao, giúp bạn thiết kế mục dịch vụ theo ý muốn mà không cần phải viết code.
Ưu điểm của việc sử dụng plugin:
- Dễ dàng cài đặt và sử dụng.
- Cung cấp nhiều tùy chọn thiết kế và bố cục.
- Thường xuyên được cập nhật và hỗ trợ.
- Không yêu cầu kiến thức về code.
Các plugin phổ biến:
- Elementor: Mặc dù là một page builder, Elementor cũng cung cấp các widget để tạo mục dịch vụ đẹp mắt và chuyên nghiệp.
- Visual Composer: Tương tự như Elementor, Visual Composer cũng là một page builder mạnh mẽ với nhiều tùy chọn để tạo mục dịch vụ.
- Services by A WP Life: Plugin này được thiết kế đặc biệt để tạo mục dịch vụ, cung cấp các tính năng như hiển thị giá cả, mô tả chi tiết và đánh giá của khách hàng.
Hướng dẫn sử dụng plugin Services by A WP Life:
- Cài đặt và kích hoạt plugin: Truy cập vào Dashboard WordPress của bạn, chọn “Plugins” > “Add New”. Tìm kiếm “Services by A WP Life”, cài đặt và kích hoạt plugin.
- Tạo dịch vụ mới: Sau khi kích hoạt, bạn sẽ thấy mục “Services” trong menu bên trái. Chọn “Add New” để tạo một dịch vụ mới.
- Nhập thông tin dịch vụ: Nhập tiêu đề dịch vụ, mô tả chi tiết, giá cả (nếu có), và tải lên hình ảnh đại diện cho dịch vụ.
- Thiết lập các tùy chọn khác: Plugin cung cấp nhiều tùy chọn để tùy chỉnh hiển thị của dịch vụ, chẳng hạn như màu sắc, font chữ, và bố cục.
- Xuất bản dịch vụ: Sau khi hoàn tất, nhấn nút “Publish” để xuất bản dịch vụ.
- Hiển thị dịch vụ trên trang web: Bạn có thể sử dụng shortcode hoặc widget của plugin để hiển thị dịch vụ trên bất kỳ trang hoặc bài viết nào trên trang web của bạn.
Cách 2: Sử dụng Custom Post Type (CPT) và Template
Cách này đòi hỏi bạn có một chút kiến thức về code (HTML, CSS, PHP), nhưng nó mang lại sự linh hoạt và tùy biến cao hơn. Bạn có thể tạo một custom post type (CPT) riêng cho dịch vụ, và sau đó tạo một template để hiển thị các dịch vụ này theo ý muốn.
Ưu điểm của việc sử dụng CPT và Template:
- Hoàn toàn tùy biến: Bạn có toàn quyền kiểm soát thiết kế và chức năng của mục dịch vụ.
- Hiệu suất tốt hơn: Không cần sử dụng plugin nặng nề, giúp trang web của bạn chạy nhanh hơn.
- Tích hợp sâu vào theme: Dễ dàng tích hợp mục dịch vụ vào theme hiện tại của bạn.
Hướng dẫn tạo CPT và Template cho dịch vụ:
Bước 1: Tạo Custom Post Type (CPT)
Bạn có thể sử dụng plugin như “Custom Post Type UI” hoặc viết code trực tiếp vào file functions.php
của theme (hoặc tốt nhất là một child theme). Dưới đây là ví dụ code để tạo CPT “services”:
function create_service_post_type() {
$labels = array(
'name' => _x( 'Services', 'post type general name' ),
'singular_name' => _x( 'Service', 'post type singular name' ),
'menu_name' => __( 'Services' ),
'name_admin_bar' => __( 'Service' ),
'add_new' => __( 'Add New' ),
'add_new_item' => __( 'Add New Service' ),
'new_item' => __( 'New Service' ),
'edit_item' => __( 'Edit Service' ),
'view_item' => __( 'View Service' ),
'all_items' => __( 'All Services' ),
'search_items' => __( 'Search Services' ),
'parent_item_colon' => __( 'Parent Services:' ),
'not_found' => __( 'No services found.' ),
'not_found_in_trash' => __( 'No services found in Trash.' ),
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'services' ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'custom-fields' ),
'menu_icon' => 'dashicons-clipboard', // Chọn một icon phù hợp
);
register_post_type( 'services', $args );
}
add_action( 'init', 'create_service_post_type' );
Bước 2: Tạo Template cho Service
Sau khi tạo CPT, bạn cần tạo một template để hiển thị thông tin của từng service. Tạo một file mới trong thư mục theme của bạn (hoặc child theme) với tên single-services.php
. Nếu theme của bạn sử dụng template parts, bạn có thể tạo các file nhỏ hơn và include chúng vào single-services.php
.
Dưới đây là ví dụ code cho file single-services.php
:
<?php
/**
* The template for displaying all single services.
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/#single-post
*
* @package YourThemeName
*/
get_header();
?>
<div id="primary" class="content-area">
<main id="main" class="site-main">
<?php
while ( have_posts() ) :
the_post();
?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header class="entry-header">
<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
<div class="entry-meta">
<!-- You can add meta information here if needed -->
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
<div class="entry-content">
<?php the_post_thumbnail( 'large' ); ?>
<?php the_content(); ?>
<!-- Display custom fields (example) -->
<?php
$price = get_post_meta( get_the_ID(), 'price', true );
if ( $price ) {
echo '<p>Price: <?php echo esc_html( $price ); ?></p>';
}
?>
</div><!-- .entry-content -->
<footer class="entry-footer">
<!-- You can add footer information here -->
</footer><!-- .entry-footer -->
</article><!-- #post-<?php the_ID(); ?> -->
<?php
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
endwhile; // End of the loop.
?>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_sidebar();
get_footer();
Bước 3: Thêm Custom Fields (tùy chọn)
Để thêm thông tin bổ sung cho dịch vụ (ví dụ: giá cả, thời gian thực hiện), bạn có thể sử dụng custom fields. Bạn có thể sử dụng plugin như “Advanced Custom Fields” (ACF) hoặc viết code trực tiếp. ACF là một lựa chọn phổ biến vì nó dễ sử dụng và cung cấp nhiều loại field khác nhau.
Sau khi cài đặt ACF, bạn có thể tạo một “Field Group” và thêm các fields bạn muốn (ví dụ: “price” – text field, “duration” – number field). Sau đó, chỉ định Field Group này cho CPT “services”.
Trong template single-services.php
, bạn có thể sử dụng hàm get_field()
để hiển thị giá trị của các custom fields:
<?php
$price = get_field('price');
if( $price ): ?>
<p>Price: <?php echo $price; ?></p>
<?php endif; ?>
Bước 4: Hiển thị danh sách dịch vụ
Để hiển thị danh sách tất cả các dịch vụ, bạn có thể tạo một page và sử dụng code sau trong template của page đó (hoặc trong một template part):
<?php
$args = array(
'post_type' => 'services',
'posts_per_page' => -1, // Hiển thị tất cả các dịch vụ
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
?>
<div class="service-item">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
</div>
<?php
}
wp_reset_postdata();
} else {
echo '<p>No services found.</p>';
}
?>
Lưu ý: Thay đổi YourThemeName
trong code trên bằng tên theme của bạn.
Kết luận
Có hai cách chính để tạo mục dịch vụ trong website WordPress của bạn: sử dụng plugin chuyên dụng hoặc sử dụng Custom Post Type (CPT) và template. Việc lựa chọn cách nào phụ thuộc vào mức độ tùy biến bạn mong muốn và kiến thức kỹ thuật của bạn. Nếu bạn muốn một giải pháp nhanh chóng và dễ sử dụng, plugin là lựa chọn tốt. Nếu bạn muốn toàn quyền kiểm soát và tối ưu hiệu suất, CPT và template là lựa chọn phù hợp hơn. Chúc bạn thành công!