2

都市をリストしてアルファベット順に並べると、このコードを思いつきました

<?php
$args = array(
    'post_type'        => 'cities',
    'orderby'          => 'title',
    'order'            => 'ASC',
    'posts_per_page'   => -1,
    'caller_get_posts' => 1
);
$my_query = new WP_Query($args);

if ($my_query->have_posts()) {
    while ($my_query->have_posts()) : $my_query->the_post();?>
        <?php
        $this_char = strtoupper(substr($post->post_title, 0, 1));
        if ($this_char != $last_char) {
            $last_char = $this_char;
            if (isset($flag))
                echo '</div>';
            echo '<div data-role="collapsible" class="excerpts">';
            echo '<h3 class="alphabet">' . '<div>' . $last_char . '</div>' . '</h3>';
            $flag = true;
        } ?>

        <p class="inner"><a data-transition="slide"
                            href="<?php the_permalink() ?>" rel="bookmark"
                            title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
        </p>
    <?php endwhile;
}
if (isset($flag))
    echo '</div>';

wp_reset_query();?>

このコードは、次の HTML を生成します

<div class="collapsible">
    <h3><div>A</div></h3>
    <p>Atlanta</p>
    <p>Alabama</p>
    <p>Arizona</p>
</div>

しかし、私が達成しようとしているのは、最初と最後の投稿のタイトルを手紙の横に置くことです。

<div class="collapsible">
    <h3><div>A</div> Atlanta - Arizona</h3>
    <p>Atlanta</p>
    <p>Alabama</p>
    <p>Arizona</p>
</div>

wordpressで最後の投稿タイトルを取得するにはどうすればよいですか? 何か案は?ありがとうございました。

最初はやってみたけど最後はわからない

echo '<h3 class="alphabet">'. '<div>'.$last_char. '</div>' .  get_the_title() .' - get_the_last_title' .'</h3>';
4

1 に答える 1

2

これを使用するget_postsと、投稿の配列が取得され、任意の配列と同様にデータにアクセスできます。

<?php 
$posts_array = get_posts( $args );
echo $posts_array[0] // First posts;
echo $posts_array[count($posts_array) -1 ] //Last Posts
?> 

または WP_query を使用:

$firstPost = $my_query -> $posts[0] // first post
$lastPost  $my_query -> $posts[$my_query->$found_posts] // Last post
于 2013-08-25T00:03:56.017 に答える