Tự động thêm liên kết cho từ khóa trong nội dung NukeViet

Thứ sáu - 01/04/2022 01:06
Hướng dẫn tự đông thêm liên kết cho từ khóa được tìm thấy trong nội dung của các module sử dụng NukeViet. Phương án này làm tăng đáng kể các liên kết nội bộ, hữu ích cho SEO
Tự động thêm liên kết cho từ khóa trong nội dung NukeViet
Liên hệ tư vấn Trần Minh Tuấn
Nhắn tin
Liên hệ tư vấn Huỳnh Ngọc Quận
Nhắn tin
Liên hệ tư vấn Minh Tú
Nhắn tin

Cơ chế hoạt động

Dựa vào danh sách từ khóa (tag) của module, tìm trong nội dung tất cả các từ khóa có trong danh sách và thêm liên kết đến trang xem danh sách bài viết thuộc từ khóa cho từ khóa đó


Yêu cầu về module có thể tích hợp

  • Module có sử dụng chức năng tag (Quản lý từ khóa)
  • Một module có thể: news, shops, download


Hướng dẫn tích hợp cho module news (và các module ảo)


Mở modules/news/funcs/detail.php
Tìm
$contents = detail_theme($news_contents, $array_keyword, $related_new_array, $related_array, $topic_array, $content_comment);
Thêm bên trên
$auto_link_config = array(
    'auto_link' => 1, // 1: kích hoạt, 0: không kích hoạt
    'auto_link_casesens' => 1, // 1: không phân biệt ký tự HOA/thường, 0: ngược lại
    'auto_link_target' => '_blank', // phương án mở liên kết, xem thêm https://www.w3schools.com/tags/att_a_target.asp
    'auto_link_limit' => 3, // số lượng từ khóa sẽ thay thế. VD nội dung có 10 từ khóa thì chỉ thay thế 3 từ đầu tiên
    'auto_link_content' => $news_contents['bodyhtml'] // biến nội dung cần thay thế
);

if ($auto_link_config['auto_link']) {
    $reg_post = $auto_link_config['auto_link_casesens'] ? '/(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>))($content)/imsu' : '/(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>))($content)/msu';
    $sql = 'SELECT keywords, alias FROM ' . NV_PREFIXLANG . '_' . $module_data . '_tags';
    $array_keywords = $nv_Cache->db($sql, 'tid', $module_name);
    foreach ($array_keywords as $keyword) {
        $url = NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=' . $module_info['alias']['tag'] . '/' . $keyword['alias'];
        $regexp = str_replace('$content', $keyword['keywords'], $reg_post);
        $replace = '<a title="$1" href="$$$url$$$" ' . (! empty($keyword['auto_link_target']) ? 'target="' . $keyword['auto_link_target'] . '"' : '') . '>$1</a>';
        $newtext = preg_replace($regexp, $replace, $auto_link_config['auto_link_content'], $auto_link_config['auto_link_limit']);
        if ($newtext != $keyword['keywords']) {
            $auto_link_config['auto_link_content']= str_replace('$$$url$$$', $url, $newtext);
        }
    }
    $news_contents['bodyhtml'] = $auto_link_config['auto_link_content'];
}


Hướng dẫn tích hợp cho module Shops (và module ảo)


Mở modules/shops/funcs/detail.php
Tìm
$contents = detail_product($data_content, $data_unit, $data_others, $array_other_view, $content_comment, $compare_id, $popup, $idtemplate, $array_keyword);
Thêm bên trên
$auto_link_config = array(
    'auto_link' => 1, // 1: kích hoạt, 0: không kích hoạt
    'auto_link_casesens' => 1, // 1: không phân biệt ký tự HOA/thường, 0: ngược lại
    'auto_link_target' => '_blank', // phương án mở liên kết, xem thêm https://www.w3schools.com/tags/att_a_target.asp
    'auto_link_limit' => 3, // số lượng từ khóa sẽ thay thế. VD nội dung có 10 từ khóa thì chỉ thay thế 3 từ đầu tiên
    'auto_link_content' => $data_content[NV_LANG_DATA . '_bodytext'] // biến nội dung cần thay thế
);

if ($auto_link_config['auto_link']) {
    $reg_post = $auto_link_config['auto_link_casesens'] ? '/(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>))($content)/imsu' : '/(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>))($content)/msu';
    $sql = 'SELECT keywords, alias FROM ' . $db_config['prefix'] . '_' . $module_data . '_tags_' . NV_LANG_DATA;
    $array_keywords = $nv_Cache->db($sql, 'tid', $module_name);
    foreach ($array_keywords as $keyword) {
        $url = NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=' . $module_info['alias']['tag'] . '/' . $keyword['alias'];
        $regexp = str_replace('$content', $keyword['keywords'], $reg_post);
        $replace = '<a title="$1" href="$$$url$$$" ' . (! empty($keyword['auto_link_target']) ? 'target="' . $keyword['auto_link_target'] . '"' : '') . '>$1</a>';
        $newtext = preg_replace($regexp, $replace, $auto_link_config['auto_link_content'], $auto_link_config['auto_link_limit']);
        if ($newtext != $keyword['keywords']) {
            $auto_link_config['auto_link_content']= str_replace('$$$url$$$', $url, $newtext);
        }
    }
    $data_content[NV_LANG_DATA . '_bodytext'] = $auto_link_config['auto_link_content'];
}


Liên hệ tư vấn Trần Minh Tuấn
Nhắn tin
Liên hệ tư vấn Huỳnh Ngọc Quận
Nhắn tin
Liên hệ tư vấn Minh Tú
Nhắn tin

Tác giả bài viết: Trần Minh Tuấn


Chú ý: Việc đăng lại bài viết trên ở website hoặc các phương tiện truyền thông khác mà không ghi rõ nguồn https://web360do.com là vi phạm bản quyền

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết
, . : 60