Rabbitinblack
  • WordPress
  • วิธีใช้ WordPress
  • CSS HTML
  • jQuery
  • รวมของน่าสนใจ
  • สัพเพเหระ
  • ฝากคำถาม

[WordPress] เบื้องต้นกับการคิวรี่ข้อมูลจาก database โดยตรง

Posted on August 10, 2012 by admin in Wordpress 3 Comments
Home» Wordpress » [WordPress] เบื้องต้นกับการคิวรี่ข้อมูลจาก database โดยตรง

ในการเรียกข้อมูลจาก database ของเว็บที่ทำด้วย WordPress นั้น ก็มีวิธีไม่ยากด้วยคำสั่ง query_posts หรือ wp_query แต่ทั้งสองก็เป็นเพียงการเรียกข้อมูลมาเท่านั้น ถ้าเราต้องการเพิ่มข้อมูล ต้องเป็นการเชื่อมต่อโดยตรง ซึ่งจริง ๆ แล้วด้วยตัว WordPress เองก็ได้เตรียมตัวแปรเพื่อให้เราได้ใช้งานไว้แล้ว ด้วยตัว $wpdb ครับ มาดูวิธีการใช้งานมันกันครับ

วิธีการใช้งาน $wpdb เบื้องต้น

ในการใช้งานให้เราสั่งเรียกมันขึ้นมาก่อนนะครับ

<?php global $wpdb; ?>

คราวนี้เวลาเราจะเรียกข้อมูล ก็สามารถสั่งได้ประมาณว่า

<?php $post_count = $wpdb->get_results("select count(*) from $wpdb->posts"); ?>

แล้วเราจะรู้ได้ยังไง ว่าเราจะเรียกข้อมูลจากที่ไหน from ตัวไหน อันนี้เราต้องมาดู database ของ WordPress ก่อนว่ามีโครงสร้างเป็นอย่างไรนะครับ

โครงสร้าง Database ของเว็บที่สร้างด้วย WordPress

[WordPress] เบื้องต้นกับการคิวรี่ข้อมูลจาก database โดยตรง

จะมีหลัก ๆ อยู่ 11 tables โดยแต่ละ table จะเก็บข้อมูลคร่าว ๆ ดังนี้ครับ

  • wp_comments: เก็บ comment ต่าง ๆ ไว้ โดยเก็บพวกชื่อ อีเมล์ IP ของคนที่มา comment รวมถึงข้อความด้วย
  • wp_commentmeta: เก็บข้อมูลของ comment ว่าสัมพันธ์กันอย่างไร เช่น comment นี้คือ comment ที่เกิดมาจากการตอบ comment ไหน หรือ comment นี้เป็น comment ที่ตอบ post ไหน
  • wp_links: เก็บข้อมูล link ที่เราสร้างไว้ในหัวข้อ Links
  • wp_options: ในหัวข้อ Settings นั้นจะเก็บข้อมูลใน table นี้
  • wp_posts: เวลาสร้าง Post และ Page จะถูกเก็บข้อมูลต่าง ๆ ไว้ที่นี่
  • wp_postmeta: ข้อมูลเสริมของแต่ละ Post หรือ Page อย่างเช่น รูป thumbnail ตัวไหน หรือใน Post นี้แนบ File อะไรไว้บ้าง
  • wp_terms: เก็บข้อมูล Categories และ Tags สำหรับ Post และ Page
  • wp_term_relationships: ส่วนอันนี้จะจับความสัมพันธ์กันในระหว่าง Post, Page, Categories และ Tags
  • wp_term_taxonomy: เก็บรายละเอียด (Description) ที่เราใส่ให้ Tags, Links และ Categories
  • wp_users: เก็บข้อมูล User ที่ Register ไว้
  • wp_usermeta: เก็บข้อมูลของแต่ละ User เช่น ชื่อ, สิทธิในการใช้งาน เป็นต้น

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

ตัวอย่างการใช้งาน

สมมติเราต้องการเรียก title ใน post ล่าสุดมาแสดงนะครับ

<?php
global $wpdb;
$last_title = $wpdb--->get_var("SELECT post_title FROM $wpdb->posts WHERE post_status = 'publish' ORDER BY post_date DESC");
echo $last_title;
?>

ถ้าต้องการเรียกข้อมูลอะไรมากกว่านี้ ก็ลองไปดูเพิ่มเติมเอานะครับ Class Reference/wpdb :P

ปล. จะเห็นว่าตรง from เราจะใช้ $wpdb->posts ซึ่งถ้าเป็น table อื่นก็จะเรียกแบบนี้ครับ wp_comments ก็เป็น $wpdb->comments

Share this:

  • Facebook
  • Twitter
  • Google +1
database, wordpress, wpdb
  • tum

    อ่านแล้วงง พอจะแนะนำแบบ step by step ได้มั๊ยครับ ไปใส่ code ที่ไฟล์ไหนหรือว่าที่ส่วนไหนอะ เห้น code แต่ไม่รู้จะเอาไปวางตรงไหน

    • rabbitinblack

      มันงงอยู่แล้วละครับ เพราะอันนี้มันคิวรี่โดยตรงเบื้องต้นก็จริง แต่ถ้าเป็นการเขียน theme มันคือ ประยุกต์ใช้งานแล้วครับ

      ถ้าอยากรู้วิธีเบื้องต้น ลองไป search หาพวก query_post ดูครับ

  • http://twitter.com/mongmx mongmx

    เนื้อหาดีมากครับ ขอติดตามอ่านต่อไปเรื่อยๆ ครับ

Contact Me

  • rabbitinlove@gmail.com
  • Contact Us
    • Facebook
    • Twitter
    • Google

Friend

  • iMenn
  • muenue.com
  • พัชร patchara
  • แบงค์กุ

Recent Posts

  • WordPress 3.5 ออกมาให้ Download ไปใช้งานได้แล้ว
  • LINE แถลงความสำเร็จในประเทศไทย ครองใจคนไทยทะลุ 10 ล้านคน
  • ในที่สุด มันก็กลับมางาน #wpdevnight ครั้งที่ 3
  • วิดีโอสอนใช้งาน Sublime Text 2
  • Parallax Scrolling Scripts

Archives

  • December 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • July 2011
  • June 2011

Partner Feed

  • Pinterest เริ่มแสดงข้อมูลเพิ่มเติมในพินบางประเภท (Blognone)
  • [ข่าวลือ] Galaxy S4 Mega และ S4 J Active (Blognone)
  • หลุด Sony Xperia UL ใช้ Snapdragon 600 (Blognone)
  • [Google I/O 13] ขนมาเป็นคันรถกับสิ่งใหม่ๆ บน Google+ (Faceblog.in.th)
  • [Google I/O 13] บ๊ายบาย GTalk สวัสดี Google Hangouts (Faceblog.in.th)
  • Facebook ทดสอบย้ายตำแหน่งช่องคอมเมนต์ในบางเพจและผู้คนที่เปิดให้ติดตามได้ (Faceblog.in.th)
  • ช่องโหว่ใหม่สำหรับคนที่ใช้ CPU x64 ของ intel (Blogkore)

Latest Tweets

  • เพิ่งเคยดู โถ คุณชาย แม่งอยากได้นางเอกจนตัวสั่นเลยนี่หว่า ความคิดก็ … เป็นพระเอกจริงเหรอวะเนี่ย นึกว่าตัวโกง
    May 18, 2013 - 10:29 pm
  • พักผ่อนหย่อนใจ เติมพลังกลับไปทำงาน http://t.co/60xgKJjk7A
    May 18, 2013 - 6:31 pm
  • Just posted a photo http://t.co/5ehw7RZHsz
    May 18, 2013 - 4:01 pm
  • เปลี่ยนที่ทำงานบ้าง http://t.co/kSGw0wwwxu
    May 18, 2013 - 3:51 pm
  • พัทยาอีกสองชม. เจอกัน >_<
    May 18, 2013 - 10:48 am

Tags

absolute cheat sheet checkbox content css css3 element facebook float function google html html5 html5 boilerplate image infographic inherit javascript jQuery overflow page pinterest plugin plugins plugin wordpress position post qTranslate query radio relative shortcode slide tag theme theme wordpress thumbnail twitter video web design wordpress wordpress theme wp_query youtube วิธีใช้ Wordpress

(c) 2012 Rabbitinblack - Web Design by Jason Bobich