سؤال

لدي صفحة ("شهادات"). لديها 3 درجات فرعية ("الأطفال"): "اضغط"، "الناس"، "الشركات".

تحتوي كل من الصفحات الفرعية على صفحات فرعية خاصة بها (أحفاد "شهادات")، والتي هي ملفات الشهادات الفعلية.

أرغب في عرض صفحة GrandChild أحدث الصفحة في FrontPage. كيف أقوم بذلك؟

حاولت استخدام get_pages () مثل هذا:

$myposts = get_pages('number=1&child_of=28&sort_column=post_date&sort_order=desc&parent=');

ولكن لا حظ: إما يعرض طفلا أو لا شيء.

سوف مساعدتكم سيكون محل تقدير كبير.

هل كانت مفيدة؟

المحلول

حسنا، اتضح الطريقة الوحيدة التي يمكنني أن أجعلها تعمل عملية استعلام محددة في قاعدة البيانات.

هنا هو الاستعلام، والحلقة التي تم إنشاؤها إذا كان أي شخص لديه نفس الحاجة.

$querystr = "SELECT p3.*

            FROM $wpdb->posts p1
            LEFT OUTER JOIN $wpdb->posts p2 ON p2.post_parent=p1.ID
            LEFT OUTER JOIN $wpdb->posts p3 ON p3.post_parent=p2.ID
            WHERE (p1.post_status = 'publish' AND p1.post_type = 'page' AND p1.ID ='28') AND (p3.post_status = 'publish' AND p3.post_type = 'page') ORDER BY p3.post_date DESC LIMIT 0,1";


            $myposts = $wpdb->get_results($querystr, OBJECT);
            if ($myposts) {

                foreach($myposts as $post) :
                    setup_postdata($post);
                    $postimageurl = get_post_meta($post->ID, 'post-img', true);
                    $postimageurl = ($postimageurl) ? $postimageurl : '/medias/img/temoignage-banner.jpg';
                    ?>

            <div  id="importantBanner" style="background-image:url(<?php bloginfo('url');
                          echo $postimageurl; ?>);margin:0;padding:0;">
                <a style="border-width:0" href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>" id="temoignageLink">
                    <span class="tradeGothic" style="display:block;padding:7px 0 0 20px;font-size:12pt"><?php the_title(); ?></span>
                </a>
            </div>
                <?php endforeach; ?>
                <?  }
            ?>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top