cannyboy
  • 0
Новичок

Как создать список дочерних страниц и использовать некоторые их настраиваемые поля?

  • 0

У меня есть такая структура страницы:

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

Я хотел бы создать список автомобилей на странице «Автомобили» всех автомобилей (которые являются дочерними страницами автомобилей). Как бы я это сделал? Список представляет собой в основном подменю, в котором должны отображаться все автомобили в алфавитном порядке (заметьте, мне не нужны ссылки на «внуки» — фото, информация). Мне также нужно получить данные настраиваемого поля с каждой страницы автомобиля и поместить их рядом со ссылкой на страницу. Возможно ли это?

Share
  1. Вы можете использовать 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;
            }
        }
    ?>
    

    Это тяжело, но я думаю, что это может завести вас довольно далеко. По сути, вы программно строите свои заголовки и возвращаете все для печати. Ключ в том, чтобы отформатировать все и правильно настроить условия.

    • 0
  2. Функция wp_list_pages() может дать вам список ваших дочерних страниц. Однако для захвата данных настраиваемых полей с каждой страницы потребуется отдельный запрос и немного больше работы. Но вот начало:

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

    Это даст вам список ссылок на все дочерние страницы страницы с идентификатором 123. depth Спецификация также предотвращает получение дочерних страниц.

    Однако, как я уже говорил ранее, получить данные настраиваемого поля немного сложнее. Сначала вам нужно будет получить идентификатор страницы каждой из ваших дочерних страниц (возможно, используя query_posts() ) и сохранить их в массиве. Затем вы пройдете по этому массиву и получите данные настраиваемого поля с каждой страницы по очереди.

    Так что это выполнимо… но я не могу предложить быстрое решение навскидку.

    • 0

Оставить ответ

You must login to add an answer.