1

我正在尝试建立我客户项目的一种存档,显示在每个页面的底部,就像在此处的“体验”部分中所做的那样:http: //toth.com/#experience - 除了在我的案例我只需要完整的项目列表,而不是小标题或任何其他结构。

我进行了一些设置,以便我客户的每个项目都是一个帖子。所以我需要一种方法来显示帖子的标题,从我创建的“工作档案”的类别中(这样客户就可以通过选中/取消选中每个帖子中的类别框来轻松地从档案中添加和删除东西) ,按字母垂直顺序,跨越四列,自动调整大小以平均填充容器。显然,存档中的每个帖子标题也需要链接到该帖子。

这几天我一直在网上搜索,虽然我发现了一些看起来很有帮助的代码,但似乎不可能(以我有限的 PHP 知识)集成它们来满足我的所有要求。我还研究了许多 WordPress 插件,但仍然没有成功。虽然我会接受任何解决方案,但理想情况下,我宁愿在 PHP/模板级别解决此问题,以使事情尽可能对客户端后端隐藏。

非常感谢您对此的任何帮助。

4

2 回答 2

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 完成它!

于 2013-08-07T19:31:14.400 回答
1

要修复打开的 ul,请更改此条件:

if ( $count % $num_per_column == 0 && $count != 0)

它将防止 ul 在第一次通过时关闭

于 2014-02-26T00:42:31.803 回答