Thay đổi nội dung / tiêu đề RSS bằng Custom Fields

Khi sản phẩm hay bài viết của bạn có khá nhiều các thông tin trong nội dung được thêm vào từ custom fields, chúng sẽ không tự động được cập nhật vào RSS feed đâu. Bạn sẽ cần thực hiện một vài thao tác để đưa các thông tin đó vào RSS feed.

Trong bài viết này, mình sẽ hướng dẫn cách lấy thông tin từ custom field được tạo bằng plugin Meta Box để đưa vào RSS feed nhé.

Thao tác ở đây khá đơn giản. Ngoài việc sử dụng plugin Meta Box (bản miễn phí) để tạo custom field thì bạn không cần thêm công cụ nào khác đâu nhé. Nếu bạn lười code thì có thể tham khảo sử dụng thêm công cụ Online Generator (cũng miễn phí) của Meta Box để tạo field cho nhanh, hoặc dùng Meta Box Builder (trả phí) để có giao diện tạo field ngay trong backend luôn.

Bước 1: Tạo custom field

Với Meta Box bản miễn phí, bạn có thể thêm trực tiếp code để tạo field vào file functions.php hoặc là tạo một plugin mới để thêm code vào.

Tạo một plugin mới

Để tạo plugin mới thì bạn vào thư mục wp-content > plugin tạo 1 folder mới và bên trong có một file .php.

Vào thư mục wp-content > plugin và tạo một thư mục để chứa dữ liệu về plugin mới.
Bên trong thư mục chứa plugin có một file .php

Ví dụ như ở đây mình đã tạo một plugin tên là Hello Custom Field.

Trong file hello-custom-field.php, mình đặt các nội dung sau:

<?php
/**
 * Plugin Name: Hello Custom Field
 * Plugin URL:  https://metabox.io
 * Description: Create custom meta boxes and custom fields in WordPress.
 * Version:     1.0
 * Author:      metabox
 * Author URL:  https://metabox.io
 * License:     GPL2+
 * Text Domain: meta-box
 * Domain Path: /languages/
 *
 * @package Meta Box
 */

Bây giờ, trong admin dashboard, bạn vào mục Plugins > Installed Plugins rồi tìm đến tên plugin bạn vừa tạo (Hello Custom Field) và kích hoạt (activate) nó.

Tạo field

Bạn có thể tự code để thêm field, hoặc là sử dụng tool Online Generator của Meta Box để tạo field online, sau đó copy code được tool Online Generator tạo ra để tiết kiệm thời gian.

Mình thêm đoạn code đó vào file php của plugin ở trên (hoặc nếu không tạo plugin thì bạn thêm trực tiếp vào file functions.php) để tạo custom field:

add_filter( 'rwmb_meta_boxes', 'hp_metaboxs' );
function hp_metaboxs( $meta_boxes ) {
    $meta_boxes[] = array(
        'title'    => 'Hotel Booking Price',
        'fields' => array(
            array(
                'id'        => 'price',
                'name' => 'Price',
                'type'   => 'number',
            ),
            array(
                'id'       => 'availability',
                'name' => 'Availability',
                'type'   => 'radio',
                'options'             => array(
                    'Available'     => 'Available',
                    'Unavailable' => 'Unavailable',
                ),
            ),
        ),
    );
    return $meta_boxes;
}

Bạn thử vào chỉnh sửa một bài viết bất kỳ sẽ thấy các field được hiển thị ra như sau:

Hiển thị của các custom fields trong back-end khi chỉnh sửa bài viết.

Bạn nhập giá trị cho các custom field này, và lưu lại nhé.

Bước 2: Hiển thị các giá trị của custom field ra frontend

Ở đây, mình dùng theme twentytwenty nên mình sẽ vào file content.phpcủa theme và thêm đoạn code dưới đây vào:

 <ul>
        <li>
            <strong>Price</strong>: <?php echo rwmb_meta( 'price' ) ?>
        </li>
        <li>
            <strong>Availability</strong>: <?php echo rwmb_meta( 'availability' ) ?>
        </li>
    </ul>

Kiểm tra bài viết hiển thị ngoài frontend, bạn sẽ thấy 2 field này hiển thị như sau:

Hiển thị 2 custom fields này ngoài front-end.

Bây giờ, chúng ta thao tác thêm để thêm các giá trị của custom field vào RSS feed nhé.

Bước 3: Thêm giá trị của custom field vào RSS Feed

Bạn mở file functions.php và thêm đoạn code dưới đây vào:

/**
 * MetaBox- Thêm custom fields vào RSS Feed
 *
 */

function prefix_add_custom_fields_to_feed($content) {
    if(is_feed()) {
        $post_id = get_the_ID();
            $price = rwmb_meta('price');
            $output = '<div><h3>Thông tin phòng</h3>';
            $output .= '<p><strong>Price:</strong> ' . $price . '</p>';

            $availability = rwmb_meta('availability');
            $output .= '<p><strong>Availability:</strong> ' . $availability . '</p>';
            $output .= '</div>'; 
        $content = $content.$output;
    }
    return $content;
}
add_filter('the_content','prefix_add_custom_fields_to_feed');

Bước 4: Hiển thị RSS Feed lên website của bạn

Bạn vào Appearance > Widgets, tìm tới tab RSS và kéo nó vào khu vực widgets bạn muốn. Sau đó bạn điền link dạng http://websitecuaban.com/feed vào ô RSS Feed URL là xong.

Hiển thị RSS feed lên website của bạn.

Như vậy là bạn đã hoàn thành việc thay đổi nội dung RSS feed rồi đó.

Lời cuối

Cùng với cách này, bạn có thể thêm bất kỳ loại field nào khác vào nội dung bài viết và cập nhật vào RSS feed đều được nhé. Rất hy vọng tip này có ích cho bạn. Ngoài ra, bạn cũng có thể tham khảo thêm các thủ thuật với Custom Fields khác tại đây. Nhớ theo dõi thêm các bài hướng dẫn tiếp theo của mình nhé!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *