it-swarm-vi.tech

Làm cách nào để tạo danh sách các trang con và sử dụng một số trường tùy chỉnh của chúng?

Tôi có một cấu trúc trang như thế này:

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

Tôi muốn tạo một danh sách các ô tô trên trang Ô tô của tất cả các ô tô (là các trang con của Ô tô). Làm thế nào tôi có thể làm điều này? Danh sách về cơ bản là một menu phụ sẽ hiển thị tất cả các xe theo thứ tự bảng chữ cái (lưu ý, tôi không cần liên kết đến 'cháu' - Ảnh, Thông tin). Tôi cũng cần lấy dữ liệu Trường tùy chỉnh từ mỗi trang xe hơi và đặt nó bên cạnh liên kết đến trang .. điều đó có thể không?

1
cannyboy

Bạn có thể sử dụng get_pages để làm điều này, như vậy:

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

Khi bạn đến đây, bạn có thể rút ra các trường tùy chỉnh của mình và đặt chúng vào các biến.

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

Tôi sẽ sử dụng một tuyên bố if của một số loại để xây dựng các tiêu đề hàng đầu. Chẳng hạn, bạn có thể làm:

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

Điều đó thật khó khăn, nhưng tôi nghĩ điều này có thể giúp bạn đi một chặng đường dài. Về cơ bản, bạn đang lập trình xây dựng các tiêu đề của mình và trả lại mọi thứ để được in. Điều quan trọng là định dạng mọi thứ và điều kiện của bạn được thiết lập đúng.

1
nickmjones

Hàm wp_list_pages() có thể cung cấp cho bạn danh sách các trang con của bạn. Tuy nhiên, việc lấy dữ liệu trường tùy chỉnh từ mỗi trang sẽ yêu cầu một truy vấn riêng và công việc nhiều hơn một chút. Nhưng đây là một khởi đầu:

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

wp_list_pages( $args );

Điều này sẽ cung cấp cho bạn một danh sách các liên kết đến tất cả các trang con của ID trang 123. Đặc tả depth là để ngăn chặn việc truy xuất các trang cháu.

Tuy nhiên, như tôi đã nói trước đây, việc lấy dữ liệu trường tùy chỉnh sẽ khó hơn một chút. Trước tiên, bạn cần nhận ID trang của từng trang con của bạn (có thể sử dụng query_posts()) và lưu trữ chúng trong một mảng. Sau đó, bạn sẽ lặp qua mảng đó và lần lượt lấy dữ liệu trường tùy chỉnh từ mỗi trang.

Vì vậy, điều đó là có thể ... nhưng tôi không thể đưa ra một giải pháp nhanh chóng trên đỉnh đầu.

1
EAMann