我正在尝试构建一个我客户项目的存档,显示在每个页面的底部,就像在“体验”部分中所做的那样:http://toth.com/#experience - 除了在我的情况下我只需要完整的项目清单,而不是小标题或任何其他结构。
我设置了一些东西,以便我的每个客户的项目都是一个帖子。所以我需要一种方法来显示帖子的标题,从我创建的“工作档案”类别(这样客户端可以通过选中/取消选中每个帖子中的类别框轻松地添加和删除档案中的内容) ,按垂直字母顺序,跨越四列,自动调整大小以平均填充容器。档案中的每个帖子标题显然也需要链接到帖子。
我已经在网上搜索了好几天,虽然我发现了一些代码看似他们会帮助,但似乎不可能(利用我有限的PHP知识)将它们集成以满足我的所有要求。我也研究了许多WordPress插件,但再次没有成功。虽然我会接受任何解决方案,但理想情况下,我宁愿在PHP /模板级别解决这个问题,以尽可能地保护客户端后端。
对此非常感谢。
答案 0 :(得分:4)
听起来最好的方法是设置一个新的WP Query对象。有关这方面的更多信息: http://codex.wordpress.org/Class_Reference/WP_Query
<?php
$args = 'category_name=work-archive&orderby=title&order=asc&posts_per_page=9999';
// assuming 'work-archive' is the slug to your category, we are also doing ascending order by title (a,b,c,d), and pulling 9999 posts (hopefully that is more than the number of posts you have!)
// The Query
$query = new WP_Query( $args );
// Keeping track of the count
$count = 0;
// Number of items per column
$num_per_column = round($query->post_count / 4); // dividing total by columns
// The Loop
if ( $query->have_posts() ) : ?>
<ul>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<?php if ( $count % $num_per_column == 0 ) : // If the current count is up to it's limit throw in a new column ?>
</ul>
<ul>
<?php endif; ?>
<li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
<?php $count++; // Increment counter ?>
<?php endwhile; ?>
</ul>
<?php endif;
/* Restore original Post Data */
wp_reset_postdata();
?>
用一些CSS完成它!
答案 1 :(得分:1)
要修复打开的ul,请更改此条件:
if ( $count % $num_per_column == 0 && $count != 0)
它将阻止第一次传递时关闭ul