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