เพิ่ม Sidebar ใน Theme | WordPress

ผมนั่งโม Theme WordPress แล้วเกิดปัญหาคือ อยากจะเอา Widget บางตัวไปไว้ที่อื่นที่ไม่ใช่  Sidebar ทางด้านขวา หลังจากหาข้อมูลอยู่นานก็พบวิธีการทำ จึงเขียนเพื่อกันลืมไว้และเป็นการบอกต่อท่านที่อยากทำด้วยครับ

วิธีเพิ่ม Sidebar ใน Theme

ขั้นตอนที่ 1 “function.php”

เปิด folder Theme ที่จะแก้ครับ แล้วเปิด file นี้ “function.php” ถ้าไม่มีก็สร้างเองเลยครับ
เปิดด้วย editer ที่คุณถนัดนะครับ แต่ผมชอบใช้ “Notepad++” เพราะฟรีและดี:)

ขั้นตอนที่ 2 Code

ใส่ Code ด้านล่างลงไปครับ

1
2
3
4
5
6
7
8
9
<?php
if ( function_exists('register_sidebar') )
register_sidebar(array(
'before_widget' => '',
'after_widget' => '',
'before_title' => '<h4>',
'after_title' => '</h4>',
));
?>

ใน Code นี้จะเป็นการเพิ่ม Sidebar จำนวนสอง Sidebar ถ้าจะเปลี่ยนชื่อให้เปลี่ยนที่ name ตรง ‘name’=>’sidebar1′ แต่ถ้าอยากได้แค่ Sidebar เดียวก็ลบ บรรทัดนี้ ออกไปครับ

1
2
3
4
5
6
register_sidebar(array('name'=&gt;'sidebar2',
'before_widget' =&gt; '',
'after_widget' =&gt; '',
'before_title' =&gt; '&lt;h4&gt;',
'after_title' =&gt; '&lt;/h4&gt;',
));

ขั้นตอนที่ 3 เอาไปใส่ใน Theme

เอาไปใส่ใน “index.php” หรือ Page ที่คุณต้องการ ใส่ในส่วนที่คุณต้องการเช่น

1
<div id="nameid">ใส่ที่ส่วนนี้</div>

ถ้าเปลี่ยนชื่อ Sidebar อย่าลืมแก้ใน Code ด้วย

Sidebar1 code นี้

1
2
3
4
5
<?php if ( !function_exists('dynamic_sidebar')
 
|| !dynamic_sidebar('sidebar1') ) : ?>
 
<?php endif; ?>

Sidebar2 code นี้

1
2
3
4
<?php if ( !function_exists('dynamic_sidebar')
|| !dynamic_sidebar('sidebar2') ) : ?>
 
<?php endif; ?>

Save แล้วไปดูที่ หน้าของ Widget จะพบว่ามี Sidebar เพิ่มขึ้นมาครับ

บทความต้นฉบับจาก quickonlinetips.com

  • http://www.designil.com/ DesignIL

    เยี่ยมเลยครับ ถ้าเป็นไปได้ช่วยแปลโค้ดเป็นภาษาเขียนให้หน่อยได้มั้ยครับ ผมรู้สึกไม่ค่อยคุ้นกับ syntax ที่ใช้เท่าไร

    ขอบคุณมากคร้าบ

  • http://www.arthitst.com munkkron77

    ภาษาเขียนหมายถึงยังไงครับ ช่วยยกตัวอย่างหน่อยได้ไหม :)

  • http://www.designil.com/ DesignIL

    โค้ดอันนี้อะครับ หลักการทำงานมันเป็นยังไง

    ผมเข้าใจแค่ว่า ถ้า !function_exists(‘dynamic_sidebar’) หรือ !dynamic_sidebar(’sidebar2′) จะเกิดอะไรขึ้นสักอย่าง อยากทราบหน้าที่ของ “: ?” ในโค้ดน่ะครับ ว่าทำให้เกิดอะไรขึ้น

    แล้วก็ฟังกชั่น dynamic_sidebar(‘sidebar2′) เป็นฟังก์ชั่นไว้ทำอะไรครับ

    ขอบคุณมากครับ

  • http://www.arthitst.com munkkron77

    “: ?” < ---ตอนแรกผมก็คิดว่าเขาพิมพ์ผิดแต่พอลองแกะ Code Theme เดิมๆของมันก็เจอแบบนี้เหมือนกันครับ
    มันเขียนว่าแบบนี้ครับ(classic)
    if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
    ทำไมต้องเขียนแบบนี้ผมก็ไม่ทราบเหมือน

    ส่วน
    dynamic_sidebar(’sidebar2′) เป็นการเพิ่ม sidebar ไปอีก 1 อัน ถ้าเราต้องการแค่อันเดียวก็ไม่ต้องใส่ครับ ไม่ต้องใส่ชุดคำสั่งด้านล่างนี้นะครับ

    < ?php if ( !function_exists('dynamic_sidebar')

    || !dynamic_sidebar(’sidebar2′) ) : ?>

    < ?php endif; ?>

  • http://boardram.com บอร์ดรามคำแหง

    เยี่ยมเลยครับ ขอบคุณมากคร้าบ