it-swarm.asia

Alt sayfaların bir listesi nasıl oluşturulur ve özel alanları nasıl kullanılır?

Bunun gibi bir sayfa yapısına sahibim:

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

Tüm otomobillerin Otomobiller sayfasında (Otomobillerin alt sayfaları olan) bir otomobil listesi oluşturmak istiyorum. Bunu nasıl yaparım? Liste temel olarak tüm arabaları alfabetik sırayla göstermesi gereken bir alt menüdür (not, 'torunlara' - Pics, Info) bağlanmam gerekmez. Ayrıca, her araba sayfasından Özel Alan verilerini almam gerekiyor ve bunu sayfanın bağlantısının yanına koydum .. bu mümkün mü?

1
cannyboy

Bunu yapmak için get_pages öğesini kullanabilirsiniz:

<?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;

Buraya geldiğinizde, özel alanlarınızı çıkarabilir ve değişkenlere koyabilirsiniz.

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

Bu üst başlıkları oluşturmak için bir çeşit if ifadesi kullanırdım. Mesela şunları yapabilirsiniz:

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

Zor, ama bence bu size oldukça uzun bir yol bulabilir. Temel olarak, programlı olarak başlıklarınızı oluşturuyor ve yazdırılacak her şeyi döndürüyorsunuz. Anahtar her şeyi biçimlendirmek ve koşullarınızı doğru şekilde ayarlamaktır.

1
nickmjones

wp_list_pages() işlevi size alt sayfalarınızın bir listesini verebilir. Her sayfadan özel alan verilerini almak ayrı bir sorgu ve biraz daha çalışma gerektiriyor. Ama işte bir başlangıç:

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

wp_list_pages( $args );

Bu size sayfa 123'teki tüm alt sayfaların bağlantılarının bir listesini verecektir. depth özelliği, torun sayfalarının da alınmasını önlemektir.

Daha önce de söylediğim gibi, özel alan verilerini almak biraz daha zordur. Öncelikle alt sayfalarınızın her birinin sayfa kimliğini (muhtemelen query_posts() işlevini kullanarak) almanız ve bir dizide saklamanız gerekir. Daha sonra bu diziyi geçerek sırayla her sayfadaki özel alan verilerini alırsınız.

Bu yüzden yapılabilir ... ama kafamın üstünden hızlı bir çözüm öneremem.

1
EAMann