Site icon บริษัท โค๊ดบี จำกัด

วิธีดึง post ล่าสุดของ wordpress มาแสดงนอก blog

สอน wordpress

สอน wordpress

<h3>วิธีดึง post ล่าสุดของ wordpress มาแสดงนอก blog<&sol;h3>&NewLine;<p><&sol;br><br &sol;>&NewLine;<strong>วิธีดึง post ล่าสุดของ wordpress มาแสดงนอก blog<&sol;strong><br &sol;>&NewLine;Wordpress เป็น CMS ทักมักจะนิยมนำไปใช้ในการทำ blog สำหรับเขียนข่าวหรือบทความของเว็บไซต์ ซึ่งมักจะเป็นเนื้อหาที่แยกส่วนจากเว็บไซต์หลัก เว็บไซต์หน้าแรกอาจจะถูกพัฒนาขึ้นมาโดยไม่ใช้ CMS และแยกส่วนข่าวสาร ส่วนที่มีเนื้อหายาว ๆ ออกไปไว้ในส่วนของบล็อกและใช้ CMS อย่าง wordpress ในการจัดการข้อมูลแทน <&excl;--more--><&sol;p>&NewLine;<p><&sol;br><&sol;p>&NewLine;<p>ปัญหาคือ เมื่อเราแยกส่วนระหว่าง wordpress และเว็บไซต์หลักซึ่งถูกพัฒนาขึ้นมาจากระบบที่แตกต่างกัน ทำให้เราไม่สามารถใช้งานคำสั่งต่าง ๆ หรือถึงจะใช้ได้ก็อาจจะติดปัญหาบางอย่าง ทำให้ไม่สามารถแสดง post ล่าสุดของ wordpress ในหน้าเพจหลักที่แยกระบบกันได้ อีกวิธีหนึ่งที่เราจะสามารถโหลด post ล่าสุดของ wordpress มาแสดงได้ก็คือการ query ตรง ลองมาดูกันครับว่าจะสามารถเขียนคำสั่งได้อย่างไรบ้าง<br &sol;>&NewLine;<&sol;br><&sol;p>&NewLine;<h4>โหลด post ล่าสุดมาแสดงนอก wordpress<&sol;h4>&NewLine;<p>หลักการทำก็ง่าย ๆ ครับคือเข้าถึงฐานข้อมูลของ wordpress โดยตรงเลย แต่โดยตรงปกติแล้วฐานข้อมูลของ wordpress ก็ค่อนข้างซับซ้อนพอสมควร เราสามารถใช้การ query เพียงครั้งเดียวและ loop เพื่อแสดง post ของ wordpress ได้เลยดังนี้<br &sol;>&NewLine;<&sol;br><br &sol;>&NewLine;<strong>คำสั่งสำหรับเชื่อมต่อฐานข้อมูลของ wordpress<&sol;strong><&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&dollar;hostname &equals; "localhost"&semi; &NewLine;&dollar;username &equals; "db username"&semi; &NewLine;&dollar;password &equals; "db password"&semi; &NewLine;&dollar;dbname &equals; "db name"&semi; &NewLine; &NewLine;mysql&lowbar;connect&lpar;&dollar;hostname&comma; &dollar;username&comma; &dollar;password&rpar; or die&lpar;"Unble to connect Database"&rpar;&semi; &NewLine;mysql&lowbar;query&lpar;"SET NAMES UTF8"&rpar;&semi; &NewLine;&commat;mysql&lowbar;select&lowbar;db&lpar;"&dollar;dbname"&rpar; or die&lpar;"Unble to connect database"&rpar;&semi;<&sol;pre>&NewLine;<p><&sol;br><br &sol;>&NewLine;<strong>จากนั้นก็ทำการ query ข้อมูลและ loop เพื่อแสดง post ตามจำนวนที่ต้องการ<&sol;strong><&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " > &NewLine;&dollar;result &equals; mysql&lowbar;query&lpar;'SELECT p1&period;&ast;&comma; wm2&period;meta&lowbar;value FROM wp&lowbar;posts p1 LEFT JOIN &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;wp&lowbar;postmeta wm1 ON &lpar; &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;wm1&period;post&lowbar;id &equals; p1&period;id &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;AND wm1&period;meta&lowbar;value IS NOT NULL &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;AND wm1&period;meta&lowbar;key &equals; "&lowbar;thumbnail&lowbar;id" &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&rpar; &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;LEFT JOIN wp&lowbar;postmeta wm2 ON &lpar;wm1&period;meta&lowbar;value &equals; wm2&period;post&lowbar;id AND wm2&period;meta&lowbar;key &equals; "&lowbar;wp&lowbar;attached&lowbar;file" &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;AND wm2&period;meta&lowbar;value IS NOT NULL&rpar; WHERE p1&period;post&lowbar;status&equals;"publish" AND p1&period;post&lowbar;type&equals;"post" &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;ORDER BY p1&period;post&lowbar;date DESC'&rpar;&semi; &NewLine;&dollar;i &equals; 0&semi; &NewLine;&dollar;max&lowbar;post &equals; 5&semi;&Tab;&Tab;&Tab;&Tab;&Tab; &NewLine;while &lpar;&dollar;i&lt&semi;&dollar;max&lowbar;post&rpar;&lbrace; &NewLine;&Tab;&Tab;&dollar;row &equals; mysql&lowbar;fetch&lowbar;array&lpar;&dollar;result&rpar;&semi; &NewLine;&Tab;&Tab;&dollar;post&lowbar;date &equals; &dollar;row&lbrack;'post&lowbar;date'&rsqb;&semi; &NewLine;&Tab;&Tab;&dollar;post&lowbar;title &equals; &dollar;row&lbrack;'post&lowbar;title'&rsqb;&semi; &NewLine;&Tab;&Tab;&dollar;post&lowbar;thumbnail &equals; &dollar;row&lbrack;'meta&lowbar;value'&rsqb;&semi; &NewLine;&Tab;&Tab;&dollar;link &equals; &dollar;row&lbrack;'guid'&rsqb;&semi; &NewLine;&Tab;&Tab;&dollar;post&lowbar;content &equals; &dollar;row&lbrack;'post&lowbar;content'&rsqb;&semi; &NewLine;&Tab;&Tab;&dollar;content &equals; explode&lpar;'&lt&semi;&excl;--more--&gt&semi;'&comma;&dollar;post&lowbar;content&rpar;&semi; &NewLine; &dollar;i&plus;&plus;&semi; &NewLine;&rcub;<&sol;pre>&NewLine;<p><&sol;br><br &sol;>&NewLine;<strong>อธิบายตัวแปรเพิ่มเติม<&sol;strong><br &sol;>&NewLine;<strong>&dollar;max&lowbar;post<&sol;strong> คือจำนวน post ที่ต้องการดึงมาแสดง<br &sol;>&NewLine;<strong>&dollar;post&lowbar;date<&sol;strong> คือวันที่ของ post ที่ถูกสร้าง<br &sol;>&NewLine;<strong>&dollar;post&lowbar;title<&sol;strong> คือหัวข้อของ post นั้น<br &sol;>&NewLine;<strong>&dollar;post&lowbar;thumbnail<&sol;strong> คือรูปของ post หรือ featured image ให้ชี้ไปที่โฟลเด้อ uploads ของ wordpress<br &sol;>&NewLine;<strong>&dollar;link<&sol;strong> คือ url ที่จะพาไปหน้าเนื้อหาของ post<br &sol;>&NewLine;<strong>&dollar;content<&sol;strong> คือเนื้อหาแบบย่อที่เรากำหนดไว้ ที่คั่นด้วยแท็ก more<&sol;p>&NewLine;<p>ถ้าต้องการเนื้อหาแบบเต็ม ก็ใช้ตัวแปร <strong>&dollar;post&lowbar;content<&sol;strong> แทน<&sol;p>&NewLine;<p><&sol;br><&sol;p>&NewLine;

Exit mobile version