it-swarm.asia

كيفية إنشاء قائمة الصفحات الفرعية ، واستخدام بعض الحقول المخصصة الخاصة بهم؟

لدي بنية صفحة مثل هذا:

-Home
-Cars
  -Volvo 640
   - Pics
   - Info
  -Porsche 911
   - Pics
   - Info

أرغب في إنشاء قائمة بالسيارات على صفحة السيارات لجميع السيارات (والتي هي صفحات فرعية للسيارات). كيف يمكنني ان افعل هذا؟ القائمة هي في الأساس قائمة فرعية يجب أن تعرض جميع السيارات حسب الترتيب الأبجدي (لاحظ ، لست بحاجة إلى روابط إلى "الأحفاد" - الصور ، المعلومات). أحتاج أيضًا إلى الحصول على بيانات "حقل مخصص" من كل صفحة سيارة ، ووضع ذلك بجانب رابط الصفحة .. هل هذا ممكن؟

1
cannyboy

يمكنك استخدام get_pages للقيام بذلك ، مثل ذلك:

<?php
    $args = array(
        'post_type' => 'page',
        'child_of' => 7,
        );
    $postobj = get_pages($args);
    foreach($postobj as $item){
        $dir = get_bloginfo('template_directory'); // Theme directory
        $title = $item->post_title;
        $parent = $item->post_parent;
        $id = $item->guid;
        $name = $item->post_name;

بمجرد الوصول إلى هنا ، يمكنك سحب الحقول المخصصة الخاصة بك ووضعها في متغيرات.

        $model_number = get_post_meta($item->ID, 'model_number', true);

أود استخدام عبارة if من نوع ما لبناء تلك العناوين الرئيسية. على سبيل المثال ، يمكنك القيام بما يلي:

            if($model_number == true){
                echo stuff;
            } else {
                echo other stuff;
        }
    }
?>

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

1
nickmjones

يمكن أن توفر لك وظيفة wp_list_pages() قائمة بالصفحات الفرعية الخاصة بك. يتطلب الحصول على بيانات الحقول المخصصة من كل صفحة ، طلبًا منفصلًا والمزيد من العمل. ولكن ها هي البداية:

$args = array(
    depth => '1',
    child_of => '123'
);

wp_list_pages( $args );

سوف يمنحك هذا قائمة بالارتباطات إلى كافة الصفحات الفرعية لمعرف الصفحة 123. مواصفات depth هي منع استرجاع صفحات الحفيد أيضًا.

كما قلت من قبل ، على الرغم من أن الحصول على بيانات الحقل المخصص أصعب قليلاً. ستحتاج أولاً إلى الحصول على معرف الصفحة لكل صفحة من صفحاتك الفرعية (ربما باستخدام query_posts()) وتخزينها في صفيف. بعد ذلك ستنتقل عبر هذا الصفيف وستحصل على بيانات الحقل المخصص من كل صفحة بدورها.

إنه أمر قابل للتنفيذ ... لكن لا يمكنني تقديم حل سريع من أعلى رأسي.

1
EAMann