Diary Life

เพิ่มความยาวให้กับ permalink setting ที่เป็น postname ของ wordpress

posted by packetlovegolf September 27, 2015 0 comments

20110402141902_img_3799

ท่านใดที่เคยใช้งาน wordpress ที่เป็น cms ในการสร้าง blog หรือ เว็บไซต์นะครับ น่าจะคุ้นเคยดีกับส่วนนี้ ที่เป็น keyword topic เช่นผมเขียน content สักเรื่องแล้วเวลาที่ save มันจะเป็นชื่อ topic นั้นใน url ให้เราครับผม เช่นผมตั้ง topic เรื่องที่จะเขียนว่า Packetlove IT service and consulting Co., Ltd.  เวลา save page ก็จะให้ขึ้นเป็น

http://golfreeze.packetlove.com/guyblog/packetlove-it-service-and-consulting-borned/

เพื่อเป็นการทำให้เว็บเรา รองรับการเข้าใช้งานแบบ SEO เพิ่มความง่ายในการค้นหาตอนใช้ google ค้นหาครับผม

อ่าและวันนี้ ก็จะมาแนะนำวิธีเพิ่มความยาวในส่วนที่เป็น topic ภาษาไทยครับสำหรับ wordpress รุ่นใหม่ๆ ที่ออกมา ไฟล์ที่ต้องแก้จะอยู่ใน path : wp-include ครับผม

1.ก่อนอื่นเลยทำการ copy file ไว้ก่อนนะครับ

#cd wp-includes

#cp -p formatting.php formatting.php_ori

#vi formatting.php

2.ค้นหาบันทัดที่เป็น sanitize_title ครับ และมองว่าส่วนที่เป็น 200 เป็นค่า default ที่ถูกตั้งค่าไว้ว่าห้ามเกิน 200 character ในกรณีที่แปลงเป็น encoding แบบ utf8 นะครับผม ทำการแก้ไขค่า จาก 200 เป็นค่าที่มากขึ้นครับ แต่ไม่ควรเกิน 900 นะครับ ถ้าเกินนี้อาจจะทำให้เว็บมีการทำงานที่โหลดเกินไป และทำให้เว็บเข้าถึงได้ช้าครับผม

  1. function sanitize_title_with_dashes( $title, $raw_title = ”, $context = ‘display’ ) {
  2. $title = strip_tags($title);
  3. // Preserve escaped octets.
  4. $title = preg_replace(‘|%([a-fA-F0-9][a-fA-F0-9])|’, ‘—$1—‘, $title);
  5. // Remove percent signs that are not part of an octet.
  6. $title = str_replace(‘%’, ”, $title);
  7. // Restore octets.
  8. $title = preg_replace(‘|—([a-fA-F0-9][a-fA-F0-9])—|’, ‘%$1’, $title);
  9. if (seems_utf8($title)) {
  10. if (function_exists(‘mb_strtolower’)) {
  11. $title = mb_strtolower($title, ‘UTF-8’);
  12. }
  13. $title = utf8_uri_encode($title, 200);   //เปลี่ยนค่าตรงนี้นะครับผม
  14. }

3. ปรับเสร็จก็ save ออกมานะครับผม

4.ขั้นตอนต่อไปทำการปรับแก้ไขข้อมูลใน โครงสร้างของ database ที่เราลง wordpress ไว้นะครับผม อาจจะเข้าผ่าน phpmyadmin ก็ได้ครับผม เข้าไปที่ table = wp_posts แล้วเลือก โครงสร้าง หรือ structure ครับ ทำการคลิกเข้าไปที่ column “post_name” column ทำการปรับเปลี่ยนค่า Length/Values จากค่าเดิม 200 เป็นค่าที่เราใส่ใหม่ครับ เช่น 500 เป็นต้น ทำการ save แล้วปิดออกมา ครับ

5. แล้วทำการปรับค่า permalink topic ของแต่ละ page ได้เลยครับผม โดย login เข้าไปในระบบหลังบ้านของ wordpress แล้วไล่เปลี่ยนได้เลยครับผม  😉

ถ้าในกรณี ตัว Permalink ไม่ทำงาน ให้ลองเช๊คดูในฝั่งของ Server มีการ enable module “rewrite” แล้วหรือยังนะครับผม
ถ้ายังก็จัดได้ง่ายๆ เลย ในตระกูล ubuntu , debian ก็
#a2enmod rewrite

แล้วก็ตรวจสอบไฟล์ .htaccess ด้วยนะครับ ว่ามีการเขียน rewrite rule ให้ถูกต้องหรือเปล่า
รวมทั้งมีการ allow ให้เรียกใช้งาน .htaccess จาก path wordpress หรือเปล่านะครับ

ถ้ายังก็เพิ่มง่ายใน apache2.conf ครับ

###Allow .htaccess on blog

<Directory /packetlove.com/blog >

        Options Indexes Includes FollowSymLinks MultiViews

        AllowOverride All

        Order allow,deny

        Allow from all

</Directory>

แล้วสั่ง restart apache 1 รอบครับ
#/etc/init.d/apache2 restart
เท่านี้ก็เรียบร้อยแล้วครับผม

Comments

comments

You may also like

Leave a Comment