ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์CMS & Free Scriptใครเทพ wp แนะนำการทำ related post ให้หน๋อยครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ใครเทพ wp แนะนำการทำ related post ให้หน๋อยครับ  (อ่าน 917 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
canvcom
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 29



ดูรายละเอียด
« เมื่อ: 30 เมษายน 2014, 10:36:22 »

คือผมสร้าง register post type ขึ้นมาใหม่ชื่อ product ในหน้า single-product.php ผมอยากให้มันสุ่มสินค้าที่อยู่ในหมวดหมู่เดียวกันมาด้วย ต้องเขียนประมาณใหนครับ
ปล. ไม่ใช้ plugin นะครับ
บันทึกการเข้า
VadiForte
สมุนแก๊งเสียว
*

พลังน้ำใจ: 125
ออฟไลน์ ออฟไลน์

กระทู้: 876



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 30 เมษายน 2014, 10:40:26 »

โค๊ด:
query_posts(array(
'showposts' => 6,
'orderby' => 'rand',
'category_name' => 'News' //You can insert any category name
));
if (have_posts()) : while (have_posts()) : the_post();

ลองดูในนี้ครับ
http://wordpress.org/support/t...om-posts-from-a-given-category
บันทึกการเข้า

beerqazasa
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 121
ออฟไลน์ ออฟไลน์

กระทู้: 1,575



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 30 เมษายน 2014, 10:55:53 »

มาเก็บความรู้ ปกติก็เคยๆแต่ใช่ปลั๊กอิน  wanwan017
บันทึกการเข้า
sMongPed
ก๊วนเสียว
*

พลังน้ำใจ: 23
ออฟไลน์ ออฟไลน์

กระทู้: 377



ดูรายละเอียด
« ตอบ #3 เมื่อ: 30 เมษายน 2014, 10:57:37 »

โค๊ด:
query_posts(array(
'showposts' => 6,
'orderby' => 'rand',
'category_name' => 'News' //You can insert any category name
));
if (have_posts()) : while (have_posts()) : the_post();

ลองดูในนี้ครับ
http://wordpress.org/support/t...om-posts-from-a-given-category

query_posts("cat=$cats&

เพิ่มให้อีกตัวแปร .. งมต่อเอาเองนะ ไม่ต้องใช้ array( ก็ได้ ใส่ตัวแปร& รัวๆ
บันทึกการเข้า
canvcom
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 29



ดูรายละเอียด
« ตอบ #4 เมื่อ: 30 เมษายน 2014, 11:00:15 »

โค๊ด:
query_posts(array(
'showposts' => 6,
'orderby' => 'rand',
'category_name' => 'News' //You can insert any category name
));
if (have_posts()) : while (have_posts()) : the_post();

ลองดูในนี้ครับ
http://wordpress.org/support/t...om-posts-from-a-given-category


ไม่ได้ครับ

สมมุติ ในหน้ารายละเอียดสินค้า A  ซึ่งสินค้า A อยู่ในหมวดหมู่  A B C
แล้วอยากให้ดึงสินค้าที่อยู่ใหนหมวดหมู่ A B C มาแสดงด้วย สัก  5 รายการ
บันทึกการเข้า
Surakrai
ก๊วนเสียว
*

พลังน้ำใจ: 71
ออฟไลน์ ออฟไลน์

กระทู้: 321



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 30 เมษายน 2014, 11:36:02 »

อับดับแรกท่านต้อง ดึงหมวดหมู่สินค้ามาก่อนครับ แล้วนำหมวดหมู่ทีได้ไป query

ผมจะยกตัวอย่างให้คราวๆ

$terms = get_the_terms( $post->ID , 'taxonomy name' );
// taxonomy name คือ register_taxonomy  name คือชื่อหมวดหมู่ที่ท่านสร้างให้กับ  post type product ถ้าเป็น post ธรรมดาที่มากับเวิร์ดเพรส ก็จะเป็น category
// ค่าที่ได้จะอยู่ในรูปแบบ array

foreach($terms as $term){
  $terms_slug[] = $term->slug;
}
//ทำการวนลูป เอาค่า slug name  เก็บเป็น array  เพื่อนำไป query หรือจะเอาชื่อหมวดหมู่ก็ได้ แต่ผมไม่แนะนำเพราะจะมีปัญหาตอนชื่อหมวดหมู่มีช่องว่าง

$args = array(
  'post__not_in' => array($post->ID), //ไม่แสดงสินค้า ณ ปัจจุบันที่แสดงอยู่
  'posts_per_page '=> 5,  // แสดง 5 รายการ
  'tax_query' => array(
     array(
       'taxonomy' => 'taxonomy name',
       'field' => 'slug', // query ที่  field slug
       'terms' => $terms_slug, // ชื่อ slug name ที่เก็บไว้
     )
  ),
  'orderby' => 'rand', // แสดงแบบซุ่ม
);

$wp_query = new WP_Query($args);

<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
  ......
<?php endwhile; ?>

<?php wp_reset_query(); ?> อย่าลืม reset query ด้วยล่ะ ^^
บันทึกการเข้า
canvcom
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 29



ดูรายละเอียด
« ตอบ #6 เมื่อ: 30 เมษายน 2014, 11:57:33 »

ขอบคุณทุกครับ เดียวจะลองทำดู
« แก้ไขครั้งสุดท้าย: 30 เมษายน 2014, 12:06:50 โดย canvcom » บันทึกการเข้า
WPDSign
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 500
ออฟไลน์ ออฟไลน์

กระทู้: 9,060



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 30 เมษายน 2014, 12:14:44 »

เดี่ยวขอลองบ้าง
ผมมั่วอยู่หลายวันแล้วเหมือนกัน relate
+ thanks ครับ
« แก้ไขครั้งสุดท้าย: 30 เมษายน 2014, 12:54:51 โดย WPDSign » บันทึกการเข้า

สร้างบ้าน Modern แบบบ้านโมเดิร์น มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ แบบบ้านสองชั้น ทุกสไลต์บริการรับสร้างบ้าน ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มีแบบบ้านสไตล์รีสอร์ท พร้อมก่อสร้าง ลงประกาศขายบ้านที่ ลงประกาศ
canvcom
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 29



ดูรายละเอียด
« ตอบ #8 เมื่อ: 30 เมษายน 2014, 12:18:29 »

อับดับแรกท่านต้อง ดึงหมวดหมู่สินค้ามาก่อนครับ แล้วนำหมวดหมู่ทีได้ไป query

ผมจะยกตัวอย่างให้คราวๆ

$terms = get_the_terms( $post->ID , 'taxonomy name' );
// taxonomy name คือ register_taxonomy  name คือชื่อหมวดหมู่ที่ท่านสร้างให้กับ  post type product ถ้าเป็น post ธรรมดาที่มากับเวิร์ดเพรส ก็จะเป็น category
// ค่าที่ได้จะอยู่ในรูปแบบ array

foreach($terms as $term){
  $terms_slug[] = $term->slug;
}
//ทำการวนลูป เอาค่า slug name  เก็บเป็น array  เพื่อนำไป query หรือจะเอาชื่อหมวดหมู่ก็ได้ แต่ผมไม่แนะนำเพราะจะมีปัญหาตอนชื่อหมวดหมู่มีช่องว่าง

$args = array(
  'post__not_in' => array($post->ID), //ไม่แสดงสินค้า ณ ปัจจุบันที่แสดงอยู่
  'posts_per_page '=> 5,  // แสดง 5 รายการ
  'tax_query' => array(
     array(
       'taxonomy' => 'taxonomy name',
       'field' => 'slug', // query ที่  field slug
       'terms' => $terms_slug, // ชื่อ slug name ที่เก็บไว้
     )
  ),
  'orderby' => 'rand', // แสดงแบบซุ่ม
);

$wp_query = new WP_Query($args);

<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
  ......
<?php endwhile; ?>

<?php wp_reset_query(); ?> อย่าลืม reset query ด้วยล่ะ ^^


ได้แล้วครับ เปลี่ยนแค่ taxonomy name เป็น category-product ก็ได้เลย สุดยอดครับ   wanwan004
ปล. ปกติผมใช้ get_the_category() ไม่ได้ใช้ get_the_terms() สองตวนี้มันต่างกันยังไงเหรอครับ
บันทึกการเข้า
canvcom
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 29



ดูรายละเอียด
« ตอบ #9 เมื่อ: 30 เมษายน 2014, 12:47:43 »

เดี่ยวขอลองบ้าง
ผมมั่วอยู่หลายวันแล้วเหมือนกัน relate
ตามคุณ Surakrai ครับ แต่ถ้าเป็น  post ที่มากับ wp อาจจะต้องปรับนิดหน๋อย
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์