1

私はクライアントのプロジェクトの一種のアーカイブを構築して、各ページの下部に表示しようとしています。これは、http: //toth.com/#experienceの「経験」セクションで行われているのとまったく同じです。サブヘッダーやその他の構造ではなく、プロジェクトの完全なリストのみが必要な場合。

クライアントの各プロジェクトが投稿になるように設定しています。そのため、「ワーク アーカイブ」を作成したカテゴリから投稿のタイトルを表示する方法が必要です (クライアントが各投稿のカテゴリ ボックスをオン/オフすることで、アーカイブから簡単に追加および削除できるようにするため)。 、縦のアルファベット順で、コンテナを均等に埋めるために自動的にサイズ変更される4つの列にわたっています。当然のことながら、アーカイブ内の各投稿タイトルも投稿にリンクする必要があります。

私はこれについて何日もネットを精査してきましたが、役に立ちそうなコードを見つけましたが、それらを統合してすべての要件を満たすことは (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 に答える