我想要做的是创建一个字典页面,列出主词典页面的alphbaticlly子页面,但这只适用于前两个字母,然后停止,我不能似乎弄明白了为什么。
这是我的代码:
<?php
$my_wp_query = new WP_Query();
$all_wp_pages = $my_wp_query->query(array('post_type' => 'page', 'orderby' => 'title', 'order' => 'ASC'));
$children = get_page_children($post->ID, $all_wp_pages);
$letter="";
foreach ($children as $child)
{
$first_letter=strtoupper(substr($child->post_title,0,1));
if($letter != $first_letter)
{
$alphabetic[]->post_title=$first_letter;
$letter=$first_letter;
}
$alphabetic[]=$child;
}
$col = 1; //how many columns
for($i = 0; $i < $col; $i++) {
$nr = (int)(sizeof($alphabetic)/4);
$i == $col - 1 ? $end = sizeof($alphabetic) : $end = $nr*($i+1);
echo '<div>';
for($j = $nr*$i; $j < $end; $j++) {
if(strlen($alphabetic[$j]->post_title)==1)
echo '</div><div class="dict-cell"><div class="dict-letter">', $alphabetic[$j]->post_title, '</div>';
else
echo '<div class="dict-term"><a href="'.get_permalink($alphabetic[$j]->ID).'">'.$alphabetic[$j]->post_title.'</a></div>';
}
echo '</div>';
} ?>
答案 0 :(得分:0)
您只需使用&#34; SORT_REGULAR&#34;为你排序类型
sort($..->post_title)
答案 1 :(得分:0)
如果有人试图做同样的事情,我会以不同的方式弄清楚这对我来说是完美的。
我的代码所做的是在字母表上运行循环,如果有特定ID的子页面,它将打印第一个字母,然后列出所有具有相同第一个字母的子页面,这样您就可以创建词汇表页面。
如果在他们赢得的某些字母下没有子页面的情况下也是如此,那么代码也是如此,所以你不会无缘无故地将空字母列表作为标题。
<?php
for ($letter = 'A'; $letter != 'AA'; $letter++) {
$child_pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_title like '$letter%' AND post_parent = '2523' AND post_status='publish'");
if ( $child_pages ) { ?>
<div class="dict-cell">
<div class="dict-letter">
<?php echo $letter; ?>
</div>
<?php foreach ( $child_pages as $pageChild ) { ?>
<div class="dict-term">
<a href="<?php echo get_permalink($pageChild->ID); ?>" rel="bookmark"><?php echo $pageChild->post_title; ?></a>
</div>
<?php } echo '</div>'; } } ?>