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

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

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

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

กระทู้: 61



ดูรายละเอียด
« เมื่อ: 30 ตุลาคม 2013, 14:38:05 »

มือใหม่ Wordpress ครับ ต้องการสร้างหน้า page/post  ให้มีความสามารถดังนี้

1. หน้า catalog จะแสดงรายละเอียดของหน้า ในหน้านี้จะแสดงหลายๆ Collection ให้เลือก
2. หน้า Collection จะแสดงรายละเอียดของ Collection แสดงหลายๆ Album ให้เลือก
3. หน้า album จะแสดงรายละเอียดของ album และแสดงหลายๆ product ให้เลืิอก
4. หน้า product แสดงรายละเอียดของ product ออกมา 

คือ ความสัมพันธ์ แต่ละหน้าจะเป็น 1 to many ลงมาเรื่อยๆนะครับ ผมจะสามารถกำหนดความสัมพันธ์ได้อย่างไรครับ

ปล. ตอนนี้ศึกษาเรื่อง Custom post type อยู่ มึนตึ๊บเลย  Tongue
บันทึกการเข้า

ยังไม่มีลายเซ็นจ้า
sbaydee
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,622



ดูรายละเอียด
« ตอบ #1 เมื่อ: 30 ตุลาคม 2013, 14:46:57 »

 Tongue
ผมว่า category ของ wp ก็น่าจะครอบคลุมแล้วนะครับ
สร้าง sub category ลงมาเรื่อยๆ
เวลาแสดงผลก็ใช้แบบ custom query post ออกมา
บันทึกการเข้า
fangbif
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,321



ดูรายละเอียด
« ตอบ #2 เมื่อ: 30 ตุลาคม 2013, 15:02:04 »

ถ้าง่ายๆ เลยก็คือใช้ parent category, sub category อ่ะค่ะ ต่อกันลงไปเป็นทอดๆ เลย แล้วอาจสร้าง page ให้สำหรับแต่ละ category ก็ได้ แบบนี้มันถึงจะเชื่อมโยงกัน

ว่าแต่ ใช้พวกเกี่ยวกับ e-commerce โดยตรงจะไม่สะดวกกว่าเหรอคะ อย่าง woocommerce อ่ะค่ะ น่าจะจักการง่ายกว่า wordpress มันจะเหมาะกับแนว content
custom post type คือพวกแยกต่างหาก ไม่เหมือนโพสปกติ มักถูกเอามาทำเป็น slide, portfolio, contact พวกนี้มันจะไม่เชื่อมโยงกันนะคะ มันจะเชื่อมเฉพาะพวกมันเอง แบบ portfolio ก็จะมี category ของงานแต่ละประเภท ก็จะไม่รวมกับ category ของ post เพราะมันเป็นคนละ post type

หรืออีกแบบคือไม่ใช่ custom post type แต่คล้ายๆ กัน ใช้กำหนดโดยบางอย่างในโพส (อธิบายไม่ถูก) เช่น ถ้าโพสนี้ใส่ category หรือ tag เป็น portfolio มันจะถูกเรียกไปแสดงในหน้า portfolio ค่ะ ในขณะที่ post อื่นๆ จะแสดงเป็น blog post ปกติ วิธีนี้น่าจะเวิร์คเหมือนกัน แต่ต้อง template ให้แต่ละหน้านะคะ เพื่อที่เราจะได้สร้าง page ขึ้นมา แล้วกำหนด template ให้มันว่าจะเป็นอันไหน เช่น catalog, collection, album, product เพื่อดึง post ที่เรากำหนดไว้โดย tag หรือ category ให้ไปแสดงใน page นั้นๆ โดยแสดงตาม template ของแต่ละชนิดแตกต่างกัน

ที่เล่ามาทั้งหมดนี้ไม่เคยทำเองนะคะ แต่เคยใช้งานจากธีมต่างๆ อ่ะค่ะ ไม่มีปัญญาทำเองหรอก 555 แต่สังเกตุว่าเค้าใ้ช้ประมาณนี้ค่ะ ง่ายสุดคือใช้ category นั่นแหละค่ะ มันสร้างเป็นแม่ ลูก หลาน เหลน โหลน ได้ ถ้าอยากให้หรูขึ้นมาอีกก็ทำ template อย่างว่าอ่ะค่ะ ให้แสดงแต่งละหมวดหมู่ในหน้าที่แตกต่างกัน ต้องเขียนเองค่ะ  Tongue
บันทึกการเข้า
sabyo
Newbie
*

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

กระทู้: 61



ดูรายละเอียด
« ตอบ #3 เมื่อ: 30 ตุลาคม 2013, 15:12:27 »

ขอบคุณครับ ตอนนี้กำลังกลับมาลองศึกษา category อยู่ ที่ผ่านมาไม่เคยใช้มันเลย

ที่จะทำ custom post type ขึ้นมา ก็เพื่อที่มันจะได้มี menu และ field สำหรับใส่แต่ละอย่างเลย user จะได้ไม่งง (เวลาเพิ่ม album, collection)

ที่ไม่ใช้ E-commerce เพราะว่าลองลงแล้วปรับแต่งอะไรไม่ค่อยได้ ต้องเสียเงิน หรือไม่ก็ต้องศึกษาโครงสร้างมันเพื่้อปรับแต่งอีก
ซึ่งผมดูแล้ว ผมไม่ได้ใช้ feature ของ E-commerce เยอะอะไรขนาดนั้น

ผมทำเว็บให้โรงงานครับ โดยโรงงานจะมีแคตตาล๊อกให้ลูกค้าดู (ต้องล๊อกอินก่อนถึงดูได้) แล้วให้ไปติดต่อกันเองผ่านอีเมล โดยแค๊ตตาล๊อกก็แบ่งหมวดหมู่ตามที่ผมโพสไว้นะครับ

ขอบคุณมากครับ จะลองศึกษาตามที่บอกมาดูครับ  wanwan017
บันทึกการเข้า

ยังไม่มีลายเซ็นจ้า
sabyo
Newbie
*

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

กระทู้: 61



ดูรายละเอียด
« ตอบ #4 เมื่อ: 30 ตุลาคม 2013, 16:00:17 »

ตอนนี้ลองใช้ custom query post  แล้วเมื่อ เลือก collection ที่ต้องการแล้ว ให้มันแสดงแต่ Album ที่อยู่ใน Collection นั้น เราจะส่งค่าเงื่อนไขให้มันยังไงครับ แล้วเราจะไปสร้าง sub page ยังไงครับ

ขอบคุณมากครับ  wanwan017
« แก้ไขครั้งสุดท้าย: 31 ตุลาคม 2013, 08:02:57 โดย sabyo » บันทึกการเข้า

ยังไม่มีลายเซ็นจ้า
sabyo
Newbie
*

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

กระทู้: 61



ดูรายละเอียด
« ตอบ #5 เมื่อ: 31 ตุลาคม 2013, 14:37:27 »

ขอดันหน่อยครับ
บันทึกการเข้า

ยังไม่มีลายเซ็นจ้า
tiamkeaw
ก๊วนเสียว
*

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

กระทู้: 281



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 31 ตุลาคม 2013, 14:44:26 »

ถ้าคุณสร้าง custom post type ( products ) ผมแนะนำให้ register taxonomy อีกตัวชื่อ catalog ไปเลยมันจะคล้ายๆ catagories ของ post (มันมีปลั๊กอินที่ทำได้นะแต่ผมจำชื่อไม่ได้)

โค๊ด:
add_action( 'init', 'create_post_type_product' );
add_action( 'init', 'create_taxonomy_catalog' );


function create_post_type_product()
{
    register_post_type( 'products',
        array(
            'labels' => array(
                'name'                  => __( 'Product', 'products' ),
                'singular_name'         => __( 'Producte', 'products' ),
                'add_new'               => 'Add New Product',
                'add_new_item'          => 'Add New Product',
                'edit_item'             => 'Edit Product',
                'new_item'              => 'New Product',
                'all_items'             => 'All Products',
                'view_item'             => 'View Product',
                'search_items'          => 'Search Products',
                'not_found'             => 'No product found',
                'not_found_in_trash'    => 'No product found in trash',
                'parent_item_colon'     => '',
                'menu_name'             => 'Products',
                'menu_position'         => 5,
            ),
            'public'        => true,
            'has_archive'   => true,
            'supports'      => array( 'title', 'editor', 'thumbnail' ),
            'taxonomies'    => array( 'post_tag' )
        )
    );
}

function create_taxonomy_catalog()
{
    $labels = array(
        'name'                          => __( 'Catalogs', 'products' ),
        'singular_name'                 => __( 'Catalog', 'products' ),
        'search_items'                  => __( 'Search Catalogs', 'products' ),
        'popular_items'                 => __( 'Popular Catalog', 'products' ),
        'all_items'                     => __( 'All Catalogs', 'products' ),
        'parent_item'                   => __( 'Parent', 'products' ),
        'parent_item_colon'             => __( 'Parent:', 'products' ),
        'edit_item'                     => __( 'Edit Catalog' ),
        'update_item'                   => __( 'Update Catalog' ),
        'add_new_item'                  => __( 'Add New Catalog' ),
        'new_item_name'                 => __( 'New Catalog' ),
        'separate_items_with_commas'    => __( 'Separate catalog with commas' ),
        'add_or_remove_items'           => __( 'Add or remove catalogs' ),
        'choose_from_most_used'         => __( 'Choose from the most used catalogs' ),
        'not_found'                     => __( 'No catalog found.' ),
        'menu_name'                     => __( 'Catalogs' ),
    );
    $args = array(
        'hierarchical'          => true,
        'labels'                => $labels,
        'show_ui'               => true,
        'show_admin_column'     => true,
        'update_count_callback' => '_update_post_term_count',
        'query_var'             => true,
        'rewrite'               => array( 'slug' => 'catalog' ),
    );
    register_taxonomy( 'catalog', 'products', $args );
}



ใส่หมวดหมู่ ( catalog ) ของ product ตามต้องการ



สร้างธีมแสดง catalog สร้างไฟล์ในธีมชื่อ taxonomy-catalog.php ลองแก้ดูนะครับ
โค๊ด:
<?php
// taxonomy-catalog.php
global $wp_query;
$temp_query = clone $wp_query;
get_header();

$cutom_taxonomy_slug get_query_var( &#39;catalog&#39; );
$current_term get_term_by( &#39;slug&#39;, $cutom_taxonomy_slug, &#39;catalog&#39;, &#39;ARRAY_A&#39;, &#39;raw&#39; );
$cutom_taxonomy_id $current_term[&#39;term_id&#39;];

echo &#39;<h1>&#39; . $current_term[&#39;name&#39;] . &#39;</h1>&#39;;

// select direct sub cactegories
$args = array(
&#39;parent&#39; => $cutom_taxonomy_id,
&#39;orderby&#39; => &#39;name&#39;,
&#39;order&#39; => &#39;ASC&#39;,
&#39;hide_empty&#39; => 0,
&#39;taxonomy&#39; => &#39;catalog&#39;,
);
$sub_categories get_categories$args );

if( 
is_array$sub_categories ) && count$sub_categories ) > 0  )
{
// loop for all sub categories
echo &#39;<ul>&#39;;
foreach( $sub_categories as $sub_category )
{
$cat_link get_term_link( ( int ) $sub_category->term_id, &#39;catalog&#39; );
echo &#39;<div>&#39;;
echo &#39;<a href="&#39; . $cat_link . &#39;">&#39;;
echo $sub_category->name;
echo &#39;</a>&#39;;
echo &#39;</div>&#39;;
}
echo &#39;</ul>&#39;;
}
else
{
// no childen catagory and display product in current taxonomy
$product_args = array(
&#39;post_type&#39; => &#39;products&#39;, // custom post type, products
&#39;catalog&#39; => $cutom_taxonomy_slug // custom taxonomy, catalog
);
$products = new WP_Query$product_args );

if( $products->have_posts() )
{
echo &#39;<ul>&#39;;
    while( $products->have_posts() )
    {      
        $products->the_post();
        echo &#39;<li>&#39;;
        the_title();
        echo &#39;</li>&#39;;
    }
    echo &#39;</ul>&#39;;
}
}

$wp_query = clone $temp_query;
get_footer(); 
?>






ส่วน widget ลงปลั๊กอินดีกว่า
โค๊ด:
http://www.studiograsshopper.ch/custom-taxonomies-menu-widget/



« แก้ไขครั้งสุดท้าย: 31 ตุลาคม 2013, 14:47:32 โดย tiamkeaw » บันทึกการเข้า

ถอนหายใจ
sabyo
Newbie
*

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

กระทู้: 61



ดูรายละเอียด
« ตอบ #7 เมื่อ: 31 ตุลาคม 2013, 16:49:58 »

ตอนนี้ลองทำตามคุณ tiamkeaw แล้ว เวลากด เลือก catalog แล้วมันขึ้น error 404 ยังหาทางแก้ไม่ได้ครับ   Cry

ผมใช้ปลั๊กอิน Custom Post Type UI ช่วยสร้าง custom post type และ taxonomy แล้ว ก็สร้าง tempalte โดยใส่โค้ดตาม taxonomy-catalog.php
แล้วสร้าง page ขึ้นมาแล้วเลือก template นั้น แล้วลงปลั๊กอินสร้าง widget ตั้งค่าเรียบร้อยแล้ว หลังจากลองรันดู ตรงส่วน content แสดงลิ้ง catalog พอลงอกดดูก็ error404
พอลองเลือกตาม taxonomy ก็ error404 เหมือนกันครับ  Lips Sealed
บันทึกการเข้า

ยังไม่มีลายเซ็นจ้า
tiamkeaw
ก๊วนเสียว
*

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

กระทู้: 281



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 31 ตุลาคม 2013, 16:59:31 »

ตอนคุณสร้าง tax กำหนด slug ของ taxonomy เป็นอะไรครับ  ในตัวอย่างผมใช้ catalog ชื่อไฟลในธีมต้องตรงกันนะ taxonomy-catalog.php
ลองเปลี่ยน permalink เป็น defualt แล้วกอปลิ้งให้ดูหน่อยครับ ว่ามันจะไปที่ไหน

ไม่ต้องสร้าง page ขึ้นใหม่นะครับ ทำงานที่ไฟล์ texonomy-catalog.php เลยครับ แล้วใช่การคิวรี่หมวดหมู่ จนถึงสุดท้ายก็เอาสินค้ามาแสดง แต่การเขียนโค้ดในไฟล์นี้จะแล้วแต่เรา

« แก้ไขครั้งสุดท้าย: 31 ตุลาคม 2013, 17:07:15 โดย tiamkeaw » บันทึกการเข้า

ถอนหายใจ
sabyo
Newbie
*

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

กระทู้: 61



ดูรายละเอียด
« ตอบ #9 เมื่อ: 01 พฤศจิกายน 2013, 11:09:51 »

ตอนคุณสร้าง tax กำหนด slug ของ taxonomy เป็นอะไรครับ  ในตัวอย่างผมใช้ catalog ชื่อไฟลในธีมต้องตรงกันนะ taxonomy-catalog.php
ลองเปลี่ยน permalink เป็น defualt แล้วกอปลิ้งให้ดูหน่อยครับ ว่ามันจะไปที่ไหน

ไม่ต้องสร้าง page ขึ้นใหม่นะครับ ทำงานที่ไฟล์ texonomy-catalog.php เลยครับ แล้วใช่การคิวรี่หมวดหมู่ จนถึงสุดท้ายก็เอาสินค้ามาแสดง แต่การเขียนโค้ดในไฟล์นี้จะแล้วแต่เรา




ผมใส่ slug ถูกต้องครับ แต่ยังไม่ค่้อยเข้าใจเรื่องการสร้าง theme เพราะเดิมผมใช้วิธีสร้าง template แล้วสร้าง page แล้วเลือก template มาใช้
ทีนี้ถ้าจะสร้างไฟล์ให้ทำงานได้เลยโดยไม่ต้องสร้างจาก page ผมยังทำไม่เป็น ขอเวลาศึกษาเพิ่มเติมต่ออีกหน่อยครับ

ขอบคุณมากครับ  wanwan017 wanwan017 wanwan017
บันทึกการเข้า

ยังไม่มีลายเซ็นจ้า
หน้า: [1]   ขึ้นบน
พิมพ์