สำหรับคนทำเว็บด้วย WordPress ที่เขียนบทความภาษาไทย เคยเจอปัญหานี้กันไหมครับ? เวลาที่เราตั้งชื่อเรื่อง (Title) ของบทความใหม่เป็นภาษาไทย เช่น “5 เทคนิคการตลาดออนไลน์สำหรับมือใหม่” พอเรากด Save Draft หรือ Publish ตัว WordPress ก็จะสร้าง URL หรือที่เรียกว่า Permalink ให้เป็นภาษาไทยตามไปด้วย กลายเป็น:
https://yourwebsite.com/5-เทคนิคการตลาดออนไลน์สำหรับมือใหม่/
ซึ่ง URL ที่เป็นภาษาไทยยาวๆ แบบนี้ นอกจากจะดูไม่สวยงามเวลาคัดลอกไปแชร์ในโซเชียลมีเดียแล้ว ยังส่งผลเสียต่อการทำ SEO (Search Engine Optimization) อีกด้วย เพราะ Search Engine อย่าง Google จะไม่ค่อยเข้าใจ URL ที่เป็นภาษาอื่นที่ไม่ใช่ภาษาอังกฤษเท่าไหร่นัก
แน่นอนว่าหลายคนแก้ปัญหานี้ด้วยการกด “แก้ไข” (Edit) ที่ช่อง Permalink แล้วนั่งพิมพ์เป็นภาษาอังกฤษเองทุกครั้ง ซึ่งก็เป็นวิธีที่ใช้ได้ แต่บางครั้งก็ลืม หรือบางทีก็คิดไม่ออกว่าจะใช้คำว่าอะไรดี ทำให้เสียเวลาและอาจเกิดความผิดพลาดได้
วันนี้ผมจึงมีตัวช่วยดีๆ ที่จะมาแก้ปัญหาน่ารำคาญนี้ให้หมดไปมาแจกกันครับ! นั่นก็คือ ดาวน์โหลด “[Translate Slug to English]” ปลั๊กอินขนาดเล็กที่ทีมงานเราพัฒนาขึ้นมาเองเพื่อคนทำเว็บชาวไทยโดยเฉพาะ
เจ้าปลั๊กอินตัวนี้จะทำการ “แปลงชื่อเรื่องบทความภาษาไทยของคุณ ให้กลายเป็น Permalink ภาษาอังกฤษที่สวยงามและเป็นมิตรต่อ SEO โดยอัตโนมัติ” ทันทีที่คุณกดบันทึกบทความ
ตัวอย่างเช่น:
- ชื่อเรื่อง: รีวิวคาเฟ่เปิดใหม่ย่านอารีย์
- Permalink ที่สร้างอัตโนมัติ: review-new-cafe-in-ari/
ง่ายๆ แบบนี้เลยครับ คุณไม่ต้องมานั่งแก้ Permalink เองอีกต่อไป ช่วยประหยัดเวลาและทำให้เว็บไซต์ของคุณมีโครงสร้าง URL ที่ดีขึ้นทันที
เพิ่มเมนูตั้งค่าใน Admin Dashboard:
สร้างเมนูในแผงควบคุมของ WordPress (Settings page) Setting > Translate Slug ที่ให้ผู้ใช้สามารถเลือกได้ว่าอยากให้ Plugin นี้ทำงานกับ post, page, หรือ custom post type.
Translate Slug Settings
$post_id,
'post_name' => $translated_slug,
) );
// บันทึก slug ที่ระบบแปลไว้ เพื่อใช้เปรียบเทียบครั้งหน้า
update_post_meta( $post_id, '_translate_slug_auto', $translated_slug );
add_action( 'save_post', 'handle_post_save' );
} elseif ( ! empty( $translated_slug ) && $translated_slug === $current_slug ) {
// slug ยังตรง → อัปเดต meta ให้ชัวร์
update_post_meta( $post_id, '_translate_slug_auto', $translated_slug );
}
}
return $post_id;
}
add_action( 'save_post', 'handle_post_save' );
// ============================================================
// TAXONOMIES
// ============================================================
function translate_slug_is_term_locked( $term_id, $taxonomy, $current_slug ) {
$auto_slug = get_term_meta( $term_id, '_translate_slug_auto', true );
if ( empty( $auto_slug ) ) {
return false;
}
if ( $current_slug !== $auto_slug ) {
return true;
}
return false;
}
function handle_term_save( $term_id, $tt_id, $taxonomy ) {
$selected_taxonomies = get_option( 'translate_slug_taxonomies', array( 'category', 'post_tag' ) );
if ( ! in_array( $taxonomy, $selected_taxonomies ) ) return;
$term = get_term( $term_id, $taxonomy );
if ( is_wp_error( $term ) || empty( $term ) ) return;
// ถ้า slug ถูกล็อคแล้ว → ข้ามไปเลย
if ( translate_slug_is_term_locked( $term_id, $taxonomy, $term->slug ) ) {
return;
}
if ( preg_match( '/[ก-๙]/u', $term->name ) ) {
$translated_slug = translate_slug_to_english( $term->name );
if ( ! empty( $translated_slug ) && $translated_slug !== $term->slug ) {
remove_action( 'created_term', 'handle_term_save', 10 );
remove_action( 'edited_term', 'handle_term_save', 10 );
wp_update_term( $term_id, $taxonomy, array( 'slug' => $translated_slug ) );
// บันทึก slug ที่ระบบแปลไว้
update_term_meta( $term_id, '_translate_slug_auto', $translated_slug );
add_action( 'created_term', 'handle_term_save', 10, 3 );
add_action( 'edited_term', 'handle_term_save', 10, 3 );
} elseif ( ! empty( $translated_slug ) && $translated_slug === $term->slug ) {
update_term_meta( $term_id, '_translate_slug_auto', $translated_slug );
}
}
}
add_action( 'created_term', 'handle_term_save', 10, 3 );
add_action( 'edited_term', 'handle_term_save', 10, 3 );

