web-dev-qa-db-ja.com

テーブルのフロントエンドに投稿を表示

すべての投稿を表示するテーブルを作成したいのですが、WP_queryを使用してすべてのiformatioを取得し、投稿を一覧表示するテーブルテンプレートを作成します。しかし、私の問題は表の中の1つの投稿だけです。私はすべてを表に含めたいと思います。

$wpb_all_query = new WP_Query(array('post_type'=>'vendor_management', 'post_status'=>'new', 'posts_per_page'=>-1)); ?>
    <?php if ( $wpb_all_query->have_posts() ) : ?>
<table class="responstable">
            <thead>
                <tr>
                    <th></th>
                    <th>Vendor Name</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
                    <td><input type="checkbox"/></td>
                    <td><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></td>
                </tr>
            </tbody>
        </table>
    <?php endwhile; ?>
    <!-- end of the loop -->


    <?php wp_reset_postdata(); ?>

<?php else : ?>
    <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>

基本的に、私はすべての投稿がフロントエンドへの編集、削除、一括削除を含んでいることを示しているバックエンドでadminテーブルのように作成したいです。私はWP_List_Tableを使用しようとしましたが、フロントエンドの場合は動作しません。

2
Diana Rider

私はあなたの問題について正確に確信することはできません、多分実例は役立つかもしれません。また、カスタム投稿ステータスが「新規」ですか、それともタイプミスですか。

しかし、コードを見ると、whileコードの外側でテーブルのコードが始まっているのがわかります。これは正しいのですが、ループの内側で終了しています。これが1件の投稿のみを表示する理由かもしれません。修正されたコードを見つけてください。

$wpb_all_query = new WP_Query(array('post_type'=>'vendor_management', 'post_status'=>'new', 'posts_per_page'=>-1)); ?>
    <?php if ( $wpb_all_query->have_posts() ) : ?>
<table class="responstable">
            <thead>
                <tr>
                    <th></th>
                    <th>Vendor Name</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
                    <td><input type="checkbox"/></td>
                    <td><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></td>
                </tr>

    <?php endwhile; ?>
     </tbody>
        </table>
    <!-- end of the loop -->
    <?php wp_reset_postdata(); ?>

<?php else : ?>
    <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>

これでうまくいくかどうか教えてください。

0
Sid

あなたの問題をチェックしましたこの機能はあなたのためにうまく働くと思います。それをチェックして、あなたがそれに問題があるかどうか私に知らせてください。

$wpb_all_query = new WP_Query(array('post_type'=>'vendor_management', 'posts_per_page'=>-1)); ?>
    <?php if ( $wpb_all_query->have_posts() ) : ?>
<table class="responstable">
            <thead>
                <tr>
                    <th></th>
                    <th>Vendor Name</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
                    <td><input type="checkbox"/></td>
                    <td><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></td>
                </tr>

    <?php endwhile; ?>
     </tbody>
        </table>
    <!-- end of the loop -->


<?php else : ?>
    <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
 <?php wp_reset_postdata(); ?>
0
Pratik bhatt