douchuo0730 2018-07-13 02:41
浏览 35
已采纳

WordPress - 显示标题以某个字母开头的帖子

I'm working on a WordPress site, and I'm having trouble querying posts that start with a certain letter.

This is what I am trying to accomplish:

This is what I am trying to accomplish.

Using a simple loop such as:

<?php get_header(); ?>

<h2>Library</h2>

<ul class="library-grid">

<?php
    $args = array(
        'post_type' => 'post'
    );

    $post_query = new WP_Query($args);

    if($post_query->have_posts() ) {
      while($post_query->have_posts() ) {
        $post_query->the_post();
        ?>
        <li class="library-item">
            <img src="<?php the_field('poster') ?>" alt="<?php the_title() ?> poster" class="library-poster">
            <div class="library-item-footer-diagonal"></div>
            <div class="library-item-footer">
                <h3 class="library-title"><a href="<?php the_permalink() ?>"><?php the_title() ?></h3></a></h3>
                <a href="<?php the_permalink() ?>" class="more-info-button">More info</a>
            </div>
        </li>
        <?php
      }
    }
?>
</ul>

<?php
get_footer();

I get all posts:

I get all posts.

How do you think I could edit the loop to get only posts whose title starts with a certain letter?

  • 写回答

1条回答 默认 最新

  • duanli9569 2018-07-13 04:18
    关注

    try

       if($post_query->have_posts() ) {
          while($post_query->have_posts() ) {
            $post_query->the_post();
    
            if(get_the_title()[0] != "a") continue; //so it only shows titles starting with lower case a
            ?>
    

    this is case sensitive, if you want you can strtolower() the_title() and your letter

    if you want to loop throught the alphabet, you can loop through 97 to 122 which is the ascii for the lowercase alphabet and use chr() to convert it to a letter

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?