我正在尝试将我添加的内容按字母顺序分组到每个字母都有“标题”的列表中。换句话说,我想在我的博客编辑器中突出显示所需的内容,然后自动将该内容按字母顺序排列并格式化为:
似乎可以使用一些健康大小的自定义PHP脚本或者某些同样乏味的javascript或jquery来完成它?有关插件或方法的任何建议吗?
答案 0 :(得分:0)
我不确定这是多么高效,但这是一个基本的实现,完全用php完成。
基本上在帖子循环中(你命令'标题',升序)你检查第一个字母是否与前一个标题的第一个字母相同。如果是的话,不要做任何特别的事情。如果它不同,那么这意味着它结束了该字母,所以结束列表,发布新字母的标题,然后继续循环。
<?php
// Get posts in alphabetical order
$args = array( 'posts_per_page' => -1, 'orderby'=> 'title', 'order' => 'ASC' );
$allposts = get_posts( $args );
?>
<ul>
<?php
$previous = 0;
$current = 1;
?>
<?php foreach($allposts as $post) {
setup_postdata($post);
// Grab the first letter of the post
$current = substr(the_title('', '', false), 0, 1);
// Is it the same as the section we're in?
if ($previous != $current) {
// If it's not the same, break the list, and start a new section
?>
</ul>
<h2><?php echo $current; ?></h2>
<?php $previous = $current; ?>
<ul>
<?php } ?>
<li><a href="<?php the_permalink ?>"><?php the_title() ?></a></li>
<?php } ?>
</ul>