it-swarm-eu.dev

Jak vytvořit seznam podřízených stránek a použít některá jejich vlastní pole?

Mám podobnou strukturu stránek:

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

Chtěl bych vytvořit seznam aut na stránce Cars všech aut (což jsou dětské stránky Cars). Jak bych to udělal? Seznam je v podstatě dílčí menu, které by mělo zobrazovat všechna auta v abecedním pořadí (poznámka, nepotřebuji odkazy na „vnoučata“ - Pics, Info). Také je třeba chytit data z vlastního pole z každé stránky vozu, a dát, že vedle odkazu na stránku .. je to možné?

1
cannyboy

K tomu můžete použít příkaz 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;

Jakmile se sem dostanete, můžete vytáhnout vlastní pole a dát je do proměnných.

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

Použil bych příkaz if nějakého druhu, abych vytvořil ty nejlepší záhlaví. Můžete například:

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

Je to drsné, ale myslím, že by to mohlo být dost dlouhé. V podstatě si programově budujete své záhlaví a vracíte vše, abyste mohli tisknout. Klíčem je formátování všeho a nastavení vašich podmínek.

1
nickmjones

Funkce wp_list_pages() vám může poskytnout seznam vašich podřízených stránek. Uchopení dat vlastního pole z každé stránky by však vyžadovalo samostatný dotaz a trochu více práce. Ale tady je začátek:

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

wp_list_pages( $args );

Získáte tak seznam odkazů na všechny podřízené stránky ID stránky 123. Specifikace depth má také zabránit načítání stránek vnouče.

Jak jsem již řekl dříve, získávání vlastních dat v terénu je trochu složitější. Nejdříve budete muset získat ID stránky každé z vašich podřízených stránek (pravděpodobně pomocí query_posts()) a uložit je do pole. Pak budete procházet tímto polem a získávat data z vlastního pole na každé stránce.

Takže je to proveditelné ... ale nemůžu nabídnout rychlé řešení z hlavy.

1
EAMann