imkopkap

การใช้ Custom Field ใน WordPress

ใช้เวลา 14 นาที 12/11/2014

Custom Field ต้องบอกก่อนเลยนะครับว่าตัวนี้ ไม่แพ้ Theme Option ใดๆ เลย เหมือนบทความ สร้าง Theme Option ด้วย Redux Framework ที่ได้สอนกันในเรื่องของการสร้าง Theme Option เพื่อทำ Theme WordPress ขายหรือใช้งานเอง

 

 

ตัวอย่าง Custom Feild
ตัวอย่าง Custom Feild

 

โดยองค์ประกอบคุณลักษณะของ Theme Option ก็คือ มันจะทำการแสดงทุกหน้า ตามที่เราได้กำหนดไว้ เช่น การเปลี่ยน Logo  แต่ Custom Field มันมีดีตรงที่ว่า มันสามารถแสดงข้อมูลที่แตกต่างกันได้

 

เช่น ราคาของสินค้าใน WordPress ( กรณีไม่ใช่ Woocommerce )  คือบางท่านจะใช้ Woo ก็ได้แต่ว่า ถ้าหากอยากจะโชว์ราคาสินค้าเฉยๆ ไม่ได้ต้องการให้ User เข้าไปคลิกซื้อของอะไรแบบนี้ ก็สามารถใช้ Custom Field ช่วยได้ครับ เพื่อเป็นการกำหนดราคาของสินค้า

 

การใช้งาน Custom Field
กรณีไม่ได้ใช้ Woocommerce

 

วิธีการใช้งาน Custom Field

  1. เข้าไปที่ wp-admin แล้วไปที่ หน้าโพสต์บทความ
  2. สังเกตดูว่ามี ช่อง Custom Field หรือเปล่า ถ้ามีแล้วก็ผ่านข้อ 3 ไปได้เลย
  3. ถ้ายังไม่มี ให้ไปที่ ” Screen Option ” ถ้าภาษาไทยจะเป็น ” ตัวเลือกหน้า ” แล้วติ๊กถูก

 

การใ้ช้งาน Custom Field
การเปิดใช้งาน Custom Field

 

4. จากนั้นเลื่อนลงมาข้างล่าง ก็จะพบมีช่องให้ใส่ Meta ของ Custom Field เรียบร้อยแล้ว

 

โค้ดสำหรับการเรียก Custom Field มาแสดง

สำหรับพื้นฐานของ Codex จะเป็นโค้ดตัวนี้

<?php $meta_values = get_post_meta( $post_id, $key, $single ); ?>

$post_id คือ เลขไอดีของบทความ หรือจะใช้เป็น $post->ID หรือ get_the_ID() ก็ได้
$key คือ Name ของ Custom Field

 

ค่า Name ของ Custom Field
ช่อง Name ของ Custom Field

 

$single คือ ค่า Boolean มี True กับ False ถ้า True จะแสดงเป็นข้อความ ถ้า False จะเก็บเป็นค่า array

 

จากโค้ดข้างต้นจะยังไม่แสดงในหน้าเว็บเรา ให้เราทำการ echo เรียกมันออกมาเสียก่อน

<?php $meta_values = get_post_meta( $post_id, $key, $single ); 
      echo $meta_values ; 
?>

ถ้าหากว่า Custom Field เราใช้ Name เดียวกันแต่ว่าอยากให้มันแสดงออกมาทุกตัวเราจะใช้โค้ดแบบนี้ก็ได้ครับ โดยการวนลูปของ Foreach ถ้าคนที่มีพื้นฐาน PHP ขึ้นไปก็จะสะดวกหน่อยครับ ทำให้โค้ดอะไรๆมันง่ายขึ้น แก๊ปต้องฝึก Skill เพิ่มหนักๆแล้วครับ

<?php  $test = get_post_meta( $post->ID, 'test', false ); 
    echo '<ul>';
        foreach ($test as $tests) {
            echo '<li>'. $tests .'</li>';
        }
    echo '</ul>';
?>

จบแล้วครับ สำหรับการทำ Custom Field ไว้มีอะไรคราวหน้าจะนำมาแชร์กันนะครับ

บันทึกแนะนำ