Нет плагин действительно необходимо: https://wordpress.stackexchange.com/questions/67271/display-all-posts-starting-with-given-letter
Решение, которое может быть польза для вас (пример, взятый из приведенной выше ссылке):
<ul class="posts">
<?php
global $wpdb;
$request = "a" // could be any letter you want
$results = $wpdb->get_results(
"
SELECT * FROM $wpdb->posts
WHERE post_title LIKE '$request%'
AND post_type = 'post'
AND post_status = 'publish';
"
);
if ($results)
{
foreach ($results as $post)
{
setup_postdata ($post);
?>
<li>
... loop stuff here (the_title, the_permalink) ...
</li>
<?php
}
}
else
{
?>
<div class="alert">No clubs found for that letter. Please try again, or use the search at the top.</div>
<?php
}
?>
</ul>
Вы можете получить ваши URL-адреса с $ _GET [], так что вы можете изменить код выше этого:
<ul class="posts">
<?php
global $wpdb;
$request = 'a';
if (isset($_GET[ "bl" ])) {
$request = sanitize_text_field($_GET[ "bl" ]);
}
$results = $wpdb->get_results(
"
SELECT * FROM $wpdb->posts
WHERE post_title LIKE '$request%'
AND post_type = 'post'
AND post_status = 'publish';
"
);
if ($results)
{
foreach ($results as $post)
{
setup_postdata ($post);
?>
<li>
//... loop stuff here (the_title, the_permalink) ...
</li>
<?php
}
}
else
{
?>
<div class="alert">No content found for that letter.</div>
<?php
}
?>
</ul>