Wordpress список дочерних страниц по алфавиту - PullRequest
2 голосов
/ 10 мая 2011

У меня есть родительская страница с около 200 дочерними страницами, которые составляют лексикон.В шаблоне родительской страницы я бы хотел, чтобы запрос имел следующий листинг.Я хочу показать первую букву для каждой группы слов, которая начинается с этой буквы.Если буква не представлена ​​в списке, она не должна отображаться.

A

Альберт

Аллан

Аманда

B

Билл

Боб

Бруно

C

Чарльз

Кристина

и так далее ...

1 Ответ

0 голосов
/ 03 апреля 2012

Мой ответ приходит поздно для вас, но, возможно, кто-то найдет его полезным.Мне нужно было то же самое, поэтому я должен был написать этот шаблон:

<?php
/*
Template Name: Alphabetic
*/
?>


<?php get_header(); ?>
<div class="container">

    <div id="content" role="main">
    <h2 class="entry-title"><?php the_title(); ?></h2>                              
        <?php

        $my_wp_query = new WP_Query();
        $all_wp_pages = $my_wp_query->query(array('post_type' => 'page'));

        $children = get_page_children($post->ID, $all_wp_pages);

        $letter="";
        foreach ($children as $child)
        {
            $first_letter=substr($child->post_title,0,1);
            if($letter != $first_letter)
            {
                $alphabetic[]->post_title=$first_letter;
                $letter=$first_letter;
            }
            $alphabetic[]=$child;
        }

        ?>

        <table style="border:none;">
            <tr>

            <?php

            $col = 4; //how many columns

            for($i = 0; $i < $col; $i++) {

                echo '<td style="border:none;">';

                    $nr = (int)(sizeof($alphabetic)/4);
                    $i == $col - 1 ? $end = sizeof($alphabetic) : $end = $nr*($i+1);

                    for($j = $nr*$i; $j < $end; $j++) {
                        if(strlen($alphabetic[$j]->post_title)==1)
                            echo '<b>', $alphabetic[$j]->post_title, '</b><br />';
                        else
                            echo '<a href="'.get_permalink($alphabetic[$j]->ID).'">'.$alphabetic[$j]->post_title.'</a><br />';
                    }

                echo '</td>';

            } ?>

            </tr>
        </table>

    </div><!-- #content -->
</div><!-- #container -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>
...