Hướng dẫn Multisite trong wordpress

Quảng cáo
Ads_ngang
Website dinhthuanit.com có bài Hướng dẫn Multisite trong wordpress

Tính năng tạo nhiều site trong mã nguồn wordpress, khá hữu ích cho việc tạo nhiều site sử dụng chung files hệ thống  framework wordpress.

– Mở wp-config.php , thêm dòng sau:

   define    (    'WP_ALLOW_MULTISITE'    ,    true    )    ;     //hiển thị menu network under tools   

Bạn sẽ thấy dòng “network” ở menu tools. Nhấn vào để cài đặt & quản lý nhiều site.
Chú ý:
– Bạn không thể tạo wordpress multi-site nếu webserver chạy cổng khác 80.
– Nếu báo lỗi thì xoá các bảng: wp_blogs , wp_blog_versions,wp_registration_log,wp_signups,wp_site,wp_sitemeta để thiết lập lại.
– Site cũ cũng có thể vẫn hiện hữu đi, vì lưu ở các bảng posts.

Bạn muốn chạy WordPress Network trên nhiều port. Ví dụ bạn có 2 cổng 80 và 81 mỗi cổng chạy 1 website. Để chạy được wordpress ở địa chỉ port khác (e.g 81), đầu tiên bạn xóa filter redirect_canonical trong functions.php

   if     (    $_SERVER    [    "SERVER_PORT"    ]     ==     81    )     {   remove_filter  (    'template_redirect'    ,    'redirect_canonical'    )    ;     }   

Không gây ảnh hưởng đến cổng 80 và gặp vấn đề về SEO bạn chỉ xóa nếu đang chạy cổng 81.
Giả sử Apache webserver của bạn cấu hình chạy nhiều ports. Nếu gặp lỗi khi chạy web khác cổng mặc đinhm 80 or 443.

 'Multisite only works without the port number in the URL.' 

Để làm máy khóe này, bạn sửa trong file “wp-includes/ms-settings.php”. Tìm dòng:

   if     (     !    isset    (     $current_site     )     ||     !    isset    (     $current_blog     )     )     {   

Thêm dòng sau:

   $_SERVER    [    'HTTP_HOST'    ]     =     preg_replace    (     '|:d+$|'    ,     ''    ,     $_SERVER    [    'HTTP_HOST'    ]     )    ;   

Đoạn code đã được thay đổi giống như sau:

   if     (     !    isset    (     $current_site     )     ||     !    isset    (     $current_blog     )     )     {       $_SERVER    [    'HTTP_HOST'    ]     =     preg_replace    (     '|:d+$|'    ,     ''    ,     $_SERVER    [    'HTTP_HOST'    ]     )    ;       $domain     =     addslashes    (     $_SERVER    [    'HTTP_HOST'    ]     )    ;       if     (     false     !==     strpos    (     $domain    ,     ':'     )     )     {     ....   

Cách khác:
Edit: This no longer works for WordPress version 3.7 or higher. Just a heads up!
Mở wp-includes/ms-settings.php và chỉnh sửa thêm port cho webserver của bạn đang dùng.
Tìm dòng:

   if     (     false     !==     strpos    (     $domain    ,     ':'     )     )     {     if     (     substr    (     $domain    ,     -    3     )     ==     ':80'     )     {     $domain     =     substr    (     $domain    ,     0    ,     -    3     )    ;     $_SERVER    [    'HTTP_HOST'    ]     =     substr    (     $_SERVER    [    'HTTP_HOST'    ]    ,     0    ,     -    3     )    ;     }     elseif     (     substr    (     $domain    ,     -    4     )     ==     ':443'     )     {     $domain     =     substr    (     $domain    ,     0    ,     -    4     )    ;     $_SERVER    [    'HTTP_HOST'    ]     =     substr    (     $_SERVER    [    'HTTP_HOST'    ]    ,     0    ,     -    4     )    ;     }     else     {   wp_load_translations_early  (    )    ;   wp_die  (   __  (     'Multisite only works without the port number in the URL.'     )     )    ;     }     }   

Thay thế bởi:

   if     (     false     !==     strpos    (     $domain    ,     ':'     )     )     {     if     (     substr    (     $domain    ,     -    3     )     ==     ':80'     )     {     $domain     =     substr    (     $domain    ,     0    ,     -    3     )    ;     $_SERVER    [    'HTTP_HOST'    ]     =     substr    (     $_SERVER    [    'HTTP_HOST'    ]    ,     0    ,     -    3     )    ;     }     elseif     (     substr    (     $domain    ,     -    4     )     ==     ':443'     )     {     $domain     =     substr    (     $domain    ,     0    ,     -    4     )    ;     $_SERVER    [    'HTTP_HOST'    ]     =     substr    (     $_SERVER    [    'HTTP_HOST'    ]    ,     0    ,     -    4     )    ;     }     elseif     (     substr    (     $domain    ,     -    5     )     ==     ':8080'     )     {     $domain     =     substr    (     $domain    ,     0    ,     -    5     )    ;     $_SERVER    [    'HTTP_HOST'    ]     =     substr    (     $_SERVER    [    'HTTP_HOST'    ]    ,     0    ,     -    5     )    ;     }     else     {   wp_load_translations_early  (    )    ;   wp_die  (   __  (     'Multisite only works without the port number in the URL.'     )     )    ;     }     }   

Lưu ý: số ký tự port hơn 2 chữ số thí dụ 18080, thì thay đổi tham số của substr. Xem mẫu:

   }     elseif     (     substr    (     $domain    ,     -    6     )     ==     ':18080'     )     {     $domain     =     substr    (     $domain    ,     0    ,     -    6     )    ;     $_SERVER    [    'HTTP_HOST'    ]     =     substr    (     $_SERVER    [    'HTTP_HOST'    ]    ,     0    ,     -    6     )    ;   

Thay số ngay số ký tự port+1
Ví dụ cho port 81

   }     elseif     (     substr    (     $domain    ,     -    3     )     ==     ':81'     )     {     $domain     =     substr    (     $domain    ,     0    ,     -    3     )    ;     $_SERVER    [    'HTTP_HOST'    ]     =     substr    (     $_SERVER    [    'HTTP_HOST'    ]    ,     0    ,     -    3     )    ;   

Hãy cho mình biết suy nghĩ của bạn trong phần bình luận bên dưới bài viết này. Hãy theo dấu kênh chia sẻ kiến thức WordPress của TopVn trên Twitter và Facebook

Bài viết Hướng dẫn Multisite trong wordpress được tổng hợp và biên tập bởi: dinhthuanit.com. Mọi ý kiến đóng góp và phản hồi vui lòng gửi Liên Hệ cho dinhthuanit.com để điều chỉnh. dinhthuanit.com xin cảm ơn.

Bài Viết Liên Quan


Bài Viết Khác


Quảng cáo
Ads_ngang