Wordpress query_posts() orderby =› 'title' ไม่ทำงาน

ฉันประสบปัญหาในการเรียงลำดับโพสต์ในรายการการนำทางบนไซต์ WordPress นี่คือรหัสของฉัน (เยื้องไม่ดี) ของฉัน:

<ul class="tree lvl-0">
        <?php
            $args = array('child_of' => 6);
            $categories = get_categories( $args );
            foreach($categories as $category) {
                echo '<li class="collapsed"><a href="/th' . get_category_link( $category->term_id ) . '"' . $category->name  . '" ' . '>' . $category->name.'</a>';
                $cat_id= $category->term_id;
                wp_reset_query();
                $args = array(
                    'cat' => $cat_id,
                    'posts_per_page' => 20,
                    'order' => 'ASC',
                    'orderby' => 'title'
                );
                query_posts($args);
                            // start the wordpress loop!
                        ?>
                            <ul class="lvl-1">
                                <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
                        <li><a href="/th<?php the_permalink();?>"><?php the_title(); ?></a></li>
                                <?php endwhile; endif; ?>
                            </ul>
                        </li>
            <?php wp_reset_query(); } ?>
    </ul>

ส่วนที่เป็นปัญหาคือ

$args = array(
    'cat' => $cat_id,
    'posts_per_page' => 20,
    'order' => 'ASC',
    'orderby' => 'title'
);
query_posts($args);

ฉันไม่แน่ใจเหมือนกันว่าพวกเขาเรียงลำดับอะไร อาจเป็นวันที่ นอกจากนี้ เมื่อฉันสั่งซื้อด้วย 'ชื่อ' หรืออย่างอื่น มันก็ใช้งานได้ :(

ขอบคุณสำหรับความช่วยเหลือล่วงหน้า


person Bill    schedule 30.01.2013    source แหล่งที่มา
comment
ฉันเห็นสิ่งที่คล้ายกันเมื่อไคลเอนต์เริ่มใช้ปลั๊กอิน qTranslate โพสต์ที่สร้างก่อนปลั๊กอินจะถูกจัดเรียงแตกต่างไปจากโพสต์ที่สร้างในภายหลัง ขึ้นอยู่กับวิธีการจัดเก็บไว้ในฐานข้อมูล - pre-qTranslate เช่น 'Title' โพสต์เช่น '‹!--:de--›Title‹!--:--›‹!--:fr--› ชื่อหัวข้อ‹!--:--›'. MySQL เพิ่งจัดเรียงตามลำดับตัวอักษร ซึ่งเป็นวิธีการพูดที่ยืดเยื้อ - ดูในฐานข้อมูลโดยเฉพาะที่ฟิลด์ post_title ในตาราง wp_posts อาจมีตัวละครพิเศษ/ซ่อนอยู่บางตัวที่ทำให้เรื่องยุ่งวุ่นวาย โดยเฉพาะถ้ามันใช้ได้กับสาขาอื่นๆ   -  person Hobo    schedule 30.01.2013
comment
สิ่งนี้อาจช่วยคุณ wordpress.stackexchange com/questions/54347/   -  person Rikesh    schedule 30.01.2013
comment
Hobo คุณช่วยโพสต์สิ่งนี้เป็นคำตอบได้หรือไม่และจะยอมรับมัน ไชโย   -  person Bill    schedule 31.01.2013


คำตอบ (2)


ดูความคิดเห็นของ Hobo เกี่ยวกับคำถาม ^

ลูกค้าของฉันก็ใช้ qTranslate เช่นกัน และนี่คือสาเหตุที่แท้จริงของปัญหา

person Bill    schedule 30.01.2013

ปัญหาคือ $args ทำสิ่งนี้:

$args = array(
    'cat' => $cat_id,
    'posts_per_page' => 20,
    'orderby' => array( 'title' => 'ASC' )
);

คุณยังสามารถสั่งซื้อได้หลายพารามิเตอร์ เช่น:

$args = array(
    'cat' => $cat_id,
    'posts_per_page' => 20,
    'orderby' => array( 'menu_order' => 'ASC', 'title' => 'ASC', 'post_date' => 'DESC' ),
);
person zod    schedule 11.05.2020