我想在wordpress的网站页脚显示网站链接。我想要获取一个深度的所有页面及其子页面。
然后我想在三列中显示它们,就像总共有8页一样,然后这些应该在第一至第二列第三列中显示3-3-2。新手到wordpress。
任何人都可以帮忙
我试过这个,但不知道我怎么能在3-3-2中对齐它们
<?php
$counter = 0;
$parent_pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = '0' AND ID <> 2 AND post_type = 'page' ORDER BY menu_order", 'OBJECT'); ?>
<?php if ( $parent_pages ) : foreach ( $parent_pages as $pageParent ) : setup_postdata( $pageParent ); ?>
<?php $counter++; ?>
<div class="linkSection">
<ul>
<li><a href="<?php echo get_permalink($pageParent->ID); ?>"><?php echo $pageParent->post_title; ?></a></a> </li>
<?php
$child_pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = '".$pageParent->ID."' AND ID <> 2 AND post_type = 'page'
ORDER BY menu_order", 'OBJECT'); ?>
<?php if ( $child_pages ) : foreach ( $child_pages as $pageChild ) : setup_postdata( $pageChild ); ?>
<li><a href="<?php echo get_permalink($pageChild->ID); ?>"><?php echo $pageChild->post_title; ?></a></a> </li>
<?php endforeach; endif; ?>
</ul>
</div>
<?php endforeach; endif; ?>
答案 0 :(得分:0)
$counter = 0;
$cnt = 0;
$parent_pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = '0' AND ID <> 2 AND post_type = 'page' ORDER BY menu_order", 'OBJECT'); ?>
<?php if ( $parent_pages ) : foreach ( $parent_pages as $pageParent ) : setup_postdata( $pageParent ); ?>
<?php $counter++; ?>
<div class="linkSection">
<ul>
<li><a href="<?php echo get_permalink($pageParent->ID); ?>"><?php echo $pageParent->post_title; ?></a></a> </li>
<?php
$child_pages = $wpdb->get_results("
SELECT *
FROM $wpdb->posts
WHERE post_parent = '".$pageParent->ID."'
AND ID <> 2
AND post_type = 'page'
ORDER BY menu_order", 'OBJECT');
// define prefix and postdix for columns (3 in a row display)
$pre = '<div class="row_3">';
$pos = '</div>';
if ( $child_pages )
{
foreach ( $child_pages as $pageChild )
{
setup_postdata( $pageChild );
echo (($cnt%3==0 || $cnt==0) ? $pre:'').
'<li>
<a href=".'get_permalink($pageChild->ID).'">'.$pageChild->post_title.'</a>
</li>'
.(($cnt%3==0 || $cnt==0) ? $pos:'');
$cnt++;
}
$cnt = 0;
}
?>
</ul>
</div>
<?php endforeach; endif; ?>
那我做了什么?首先,我重新格式化你的代码。是的,我知道,WP使用的是那种风格,但对我来说这是不好的。比我添加前缀\后缀的链接列表。和循环计数器。
工作原理:在循环中,我们用$cnt++;
计算每次迭代。在每个打印中,我们检查它是否是第三行,如果是 - 我们在行中添加前缀和后缀。
现在你可以调整“row_3”的css样式,使其成为3行显示。