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

Chủ nhật - 10/03/2019 13:41
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

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'];
}

Nguồn tin: mynukeviet.net

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

Click để đánh giá bài viết

  Ý kiến bạn đọc

Mã bảo mật   
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây