web-dev-qa-db-ja.com

WordpressおよびCPTUI表示ページで列を作成する方法

私はこれで少し迷っています、それで私は本当に私のために働く何かに以下のコードを修正する方法に関していくらかの助けを望んでいます。私はCPTUIプラグインを使用していて、それはうまく機能しています。以下のコードスニペットは、私が作成した修正済みの順序付きリストからのものです。それは、ページをサムネイル付きの順序付きリストで表示しているはずです。すべてが正常に機能しています。ただし、これを3つのテーブルセルの行として表示したい

これは私が持っているコードへのリンクです> https://Pastebin.com/N44fyEhB

Whileループのコードスニペット:

<?php $args = array( 'post_type' => 'the_members', 'orderby' => 'ID', 'order' => 'DESC', 'posts_per_page' => '200' );
            $ourposts = new WP_Query( $args );
            if ( $ourposts->have_posts() ) : while ( $ourposts->have_posts() ) : $ourposts->the_post(); ?>
            <li><a href="<?php the_permalink();?>"><?php the_post_thumbnail( array(200, 150) );?></a><br><?php echo get_the_date( 'Y-m-d' ); ?> </i></li>
    <?php
    endwhile;
    endif; ?>

私が探しているのは単一行に3つの列を表示する方法です....私はwhileループがこのように見える必要があることを知っています>

    <?php $args = array( 'post_type' => ‘themembers’, 'orderby' => 'ID', 'order' => 'DESC', 'posts_per_page' => '200' );
     $i = 0; 
     echo ‘<tr>’;
     $ourposts = new WP_Query( $args );
     while($row = $ourposts) {
       $img = $row['the_post_thumbnail'];
       $img_link = $row['the_permalink’];
       if $img = ( $i % 2 == 0 ); 
            echo '<td><a href=\">’; $img_link; echo '\">'; $img; echo ‘</a>’; } ?>

       <?php endif;
       echo '<tr>';
       endwhile;
       ?>

これでも近いですか?私は正しい方向に進んでいますか?私は上で推測しているだけです…。

別の方法はこの問題を解決するためにCSSを使うことですが、上記のPHPがひどいと思うなら、どうやって私がCSSを荒らすべきかを見るべきです。

具体的にこれを行う方法について、そこにコード例(テーブルまたはCSS)はありますか?

どんなポインタでも役に立つでしょう。

1
Miles Works

多分これはあなたを助ける:

$ourposts = new WP_Query( $args );
// ask if there results
if( $ourposts->have_posts() ):
    $i = 0;
    // outside the while you open and close the tr so inside the while yo only have to print a close tr and reopen it
    echo '<tr>';
    while($ourposts->have_posts()) : $ourposts->the_post();
        $i++;
        // every three posts you closes and open a tr
        if( $i%3==0 ){
            echo '</tr><tr>';
        }
        echo '<td>'.get_the_title().'</td>';
    endwhile;
    // then close the tr
    echo '</tr>';
endif;
0