Products
GG网络技术分享 2025-03-18 16:12 2
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:
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:
How do you think I could edit the loop to get only posts whose title starts with a certain letter?
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
Demand feedback