การสร้างเว็บ Multisite

บทความนี้ขอกล่าวถึงอะไรที่ค่อนข้างเป็นเทคนิคมากขึ้นจาก Beginner นิดหน่อย แต่ก็ยังถือว่าอยู่ในระดับที่ beginner สามารถทำได้ เพราะมันก็ยังกึ่งอัตโนมัติอยู่หลายอย่าง ซึ่งเราจะมาพูดถึงสิ่งที่เรียกว่า

เว็บหลัก

www.wpthai.pub

เว็บย่อย

www.wpthai.pub/another1

www.wpthai.pub/another2

www.wpthai.pub/another3

ซึ่งด้วยวิธีการนี้ เราสามารถที่จะสร้างเว็บลูกขึ้นมาภายใต้เว็บ WordPress หลัก โดยที่เราสามารถจัดการเว็บลูกทั้ง 3 ได้จาก Dashboard หลักของเว็บแม่ ไม่ว่าจะเป็น Theme หรือ Plugin ไม่ต้องไปติดตั้งแยกกันทีละเว็บ และไม่ต้องไปตั้งค่าอะไรที่โฮ้สเพราะจะเป็นปรับแต่งในส่วนของ htaccess แทนค่ะ

ส่วนใหญ่นิยมใช้ในการแยกเนื้อหาที่ไม่เหมือนกันออกจากกัน เช่น เว็บแม่เป็นเว็บขายสินค้า โดยมีเว็บลูกเป็นเว็บบล็อกที่ใช้เขียนบทความเกี่ยวกับสินค้า หรือ เว็บหลักกับเว็บลูกเป็นคนละภาษาที่ต้องการการออกแบบและเนื้อหาที่แตกต่างกัน เป็นต้น

⇒ รายละเอียดแบบละเอียดจริงๆ นั้นสามารถอ่านได้ที่ http://codex.wordpress.org/Create_A_Network

ขั้นตอนแรกสำหรับการแก้ไขจุดใหญ่ๆ แบบนี้ทุกครั้งหากไม่ใช่เว็บที่เพิ่งสร้างใหม่ นั่นก็คือการ Backup เสร็จแล้วทำการ Deactivate ปลั๊กอินทั้งหมดก่อนค่ะ แล้วทำการเปลี่ยน Permalink เป็นแบบ Post name เพื่อที่ url จะได้สั้นกระชับขึ้น ต่างจากค่ามาตฐานที่ส่วนใหญ่มักแสดงเป็น id

deactive-all-plugin

Deactivate ปลั๊กอิน

permalink-postname

เปลี่ยน Permalink เป็นแบบ Post name

เสร็จแล้ว ให้เราเปิด Ftp เจ้าประจำของเราขึ้นมา แล้วเปิดไฟล์ wp-config.php เพื่อเพิ่มโค้ดนี้เข้าไปก่อนบรรทัดที่เขียนว่า /* That’s all, stop editing! Happy blogging. */ ค่ะ

/* Multisite */
 define( 'WP_ALLOW_MULTISITE', true );

allow-wpconfig-multisite

เสร็จแล้วก็เซฟอัปโหลดกลับไปที่โฮ้สต์

save-changes-to-server

ทำการรีเฟรชบราวเซอร์ที่เว็บเราอีกครั้ง ไปที่เมนู Tools เราจะเจอกับเมนู Network Setup เพิ่มขึ้นมา

tool-network-setting

เลือกตัวเลือกที่ 2 คือ Sub-directories แล้วกรอก Network title ที่ต้องการ

choose-directories

ระบบจะแจ้งให้เราก๊อปปี้โค้ดชุดแรก ไปวางใน wp-config.php และโค้ดอีกชุด ไปแทนที่ WordPress rule เดิมใน .htaccess

setting-sub-directory

define-multisite

wp-config.php

change-htaccess-multisite-wordpress

แทนที่ WordPress rule ใน htaccess เดิม

 

เสร็จแล้วทำการรีเฟรชหน้าเว็บของเรา ระบบจะให้เรา Login ใหม่อีกรอบค่ะ

relogin

เมื่อเรากลับมาที่ Dashboard ครั้งนี้ เราจะเจอกับ Toolbar ที่ต่างออกไป กล่าวคือจะมีเมนูในส่วนของ Network เพิ่มเข้ามา

network-bar

 

เพิ่มเว็บลูก (Add Site)

Mysite > Network Admin > Dashboard

network-dashboard

คลิกที่ปุ่ม Create a New Site

create-a-new-site

 

กรอกชื่อ sub directory ที่เราต้องการ เช่น หากอยากได้อีกอันเป็น blog ก็อาจใส่เป็น blog อยากทำอีกอันเป็นภาษาอังกฤษ ก็ใส่เป็น eng เป็นต้น

ในที่นี้เราทำตามตัวอย่างโดยจะสร้าง another1, another2 และ another3 รวมเป็น 3 sub directory กับอีก 1 ไซต์หลักคือ wpthai รวมเป็น 4

add-another-site

ที่หน้า Dashboard ของ My Sites นี้ เราสามารถที่จะจัดการกับไซต์ทั้งหมด รวมทั้ง Theme และ Plugin ก็จะติดตั้งลงที่ตรงนี้ แล้วจึงจะสามารถกำหนดลงไปว่าสามารถให้ไซต์อื่นๆ ใช้งานได้หรือไม่

mysite-all

เราสามารถที่จะจัดการแต่ละไซต์ได้ โดยการชี้ที่เมนู My Sites > ชี้ที่ไซต์ที่ต้องการ > คลิกเมนูที่ต้องการ

view-site

การติดตั้งปลั๊กอินและธีม

ในการจัดการกับ Site Network นี้ เราจะติดตั้งปลั๊กอินแบบรวมไว้ที่เดียว แล้วค่อยกำหนดให้ปลั๊กอินนั้นใช้ในส่วนรวมหรือไม่ แล้วถึงจะไปกำหนดในแต่ละไซต์ว่าจะ Active ปลั๊กอินตัวไหนบ้าง ซึ่ง Theme นั้นก็ใช้หลักการเดียวกัน รวมไปถึงการอัพเดตต่างๆ ก็จะทำที่จากหน้า Dashboard ของ Network Admin (My Sites)

Mysite > Plugins > Add New

network-addnew-plugin

ทำการติดตั้งปลั๊กอินตามปกติ จากนั้นหลังติดตั้งเสร็จคลิกที่ Network Activate

network-active-plugin-by-one

 

หรือคลิกที่ Return to Plugins page หากต้องการจัดการกับทีละหลายปลั๊กอิน

any-network-plugin-activate

การ Activate, Deactivate ปลั๊กอินของไซต์ใน Network

theme-setting-network

Theme ใน Network

หมายเหตุ :

การสั่ง Network Activate นี้จtทำให้ปลั๊กอินที่เลือก ทำงานในทุกไซต์ โดยเราสามารถเข้าไปตั้งค่าแต่ละปลั๊กอินในเมนู Settings หรือเมนูของแต่ละปลั๊กอินได้ตามปกติ โดยจะไม่มีเมนู Add New Plugin ในไซต์ลูกเหล่านี้ ดังนั้น หากเราต้องการให้ปลั๊กอินไหน ทำงานเฉพาะในบางไซต์ ให้เซ็ตเป็น Network Deactivate แล้วเข้าไปที่ Dashboard ของไซต์นั้นๆ แล้วค่อยเลือก Active เอาเฉพาะปลั๊กอินตัวนั้นในเมนู Plugins

plugin-activate-no-activate

 

ในส่วนของ Theme นั้น Theme ที่เราได้ทำ Network Enable ก็จะถูกเซ็ตให้ทำงานกับทุกไซต์ เราสามารถ Network Enable ธีมหลายธีมก็ได้ โดยเราก็ยังสามารถไป Activate เฉพาะไซต์ได้ที่เมนู Theme ของไซต์นั้นๆ

activate-theme-network

Edit Site

เมนู Edit Site ช่วยให้เราสามารถแก้ไขไซต์ที่เป็น Sub directory ของเรา โดยไปที่ไซต์นั้นๆ ก่อน แล้วที่ toolbar ให้ชี้ที่ชื่อไซต์แล้วเลือกเมนู Edit Site

edit-site

เราสามารถแก้ไขการตั้งค่าของไซต์ได้ในแท็บเหล่านี้ รวมถึงการ Enable ธีมที่ไม่ได้ทำ Network Enable ไว้ก่อนหน้าด้วย

site-edit

 

เพียงเท่านี้ เราก็จะได้เว็บไซต์ที่มี Sub directory เป็น www.ชื่อเว็บเรา.com/ไซต์ลูก กี่อันก็ได้ โดยที่ไม่ต้องติดตั้งใหม่ทีละอัน และยังสามารถควบคุมได้จากที่เดียวด้วยค่ะ

sub-directory-different-theme