在表格中输出最近的Wordpress帖子,在tr标签中包含2个帖子?

时间:2011-12-16 15:17:52

标签: php html wordpress

我正在设计一个自定义wordpress主题,我想在主页上水平显示最近的帖子,每行两个帖子。它看起来像这样:

http://www.numenfilm.com/preview/issues.php

所以我希望我的index.php文件能够像这样踢出代码:

<table>
    <tr>
      <td>
        post contents here
      </td>
      <td>
        post contents here
      </td>
    </tr>
    <tr>
      <td>
        post contents here
      </td>
      <td>
        post contents here
      </td>
    </tr>
</table>

table和td标签很简单。我遇到的问题是让tr标签以两个为一组包裹帖子。

我在堆栈溢出的其他地方发现了这篇文章:

Table, TR each 2 loop, PHP, HTML

最后的建议似乎是我正在寻找的,但我没有任何运气与wordpress集成。这是我的index.php页面中的代码:

<?php get_header(); ?>
  <div id="main_content">
  <h1><a href="<?php echo get_settings('home'); ?>">Numen News &amp; Blog</a></h1>
    <?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    query_posts("showposts=5&paged=$paged");
    ?>

      <?php if (!is_single() && !is_page() && !is_front_page()) : ?><h1><?php wp_title(' ', true, 'right'); ?></h1><?php endif; ?>

        <?php /* begin the loop */ if (have_posts()) : ?>

    <?php while (have_posts()) : the_post(); ?>
      <?php if (is_page()) : /* show page contents */ ?>
                <div class="pagecontent" id="post-<?php the_ID(); ?>">
                    <h1><?php the_title(); ?></h1>
                    <?php the_content('Read more &rarr;'); ?> 
                    <p><?php wp_link_pages('next_or_number=number&pagelink=page %'); ?></p>
                    <p><?php edit_post_link('Edit', '[ ', ' ]'); ?></p>  
                </div>
                <?php comments_template(); ?>

            <?php else : /* show post contents */ ?>
                <div class="post" id="post-<?php the_ID(); ?>">
                    <div class="postcontents">
                        <?php if (!is_single()) : ?>
                            <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
                        <?php else : ?>
                            <h1><?php the_title(); ?></h1>
                        <?php endif; ?>

            <div class="posted">Posted <?php the_time('F jS, Y') ?> by <?php the_author_link(); ?> </div>
                        <?php the_content('Read more &rarr;'); ?> 
                        <p><?php wp_link_pages('next_or_number=number&pagelink=page %'); ?></p>    
                    </div>

                    <?php if(is_single) comments_template(); ?>
                </div>
            <?php endif; /* end if page or post */ ?>
        <?php endwhile;/* end the main loop */ ?>

        <?php /* post navigation */ ?>
        <?php if (is_single()) : ?>
            <div class="postnavigation">
                <?php previous_post_link('%link', '<span>&larr;</span> Previous post') ?>
                <?php next_post_link('%link', 'Next post <span>&rarr;</span>') ?>
            </div>
        <?php endif; ?>
        <?php if (  $wp_query->max_num_pages > 1 ) : ?>
            <div class="postnavigation">
                <?php next_posts_link('Older posts <span>&rarr;</span>') ?>  
                <?php previous_posts_link('<span>&larr;</span> Newer posts') ?>
            </div>
        <?php endif; ?>
        <?php endif; /* end if have_posts */ ?>      
  </div><!--END main_content -->
<?php /* sidebar */ get_sidebar(); ?>
<?php /* footer */ get_footer(); ?>

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

不要使用表格

如果你想继续写坏标记,你需要做这样的事情。

<table>
//wordpress loop starts ( you left that part out)
 <td>
   <tr>
     <?php the_content('Read more &rarr;'); ?>
   </tr>
  </td>
// loop ends
</table>

答案 1 :(得分:0)

尝试此代码,为了便于阅读,省略了td中的主要代码。我添加的代码,你应该添加的大多数是深红色,我相信你可以想出来。

  <table>
  <tr>
  <?php $counter=1; ?>
  <?php while (have_posts()) : the_post(); ?>
       <td>
       <?php if (is_page()) : /* show page contents */ ?>
           :
           :
        <?php endif; /* end if page or post */ ?>
        </td>
        <?php if($counter%2==0) echo '</tr><tr>';
              $counter++;
        ?>
    <?php endwhile;/* end the main loop */ ?>
    </tr>
    </table>

答案 2 :(得分:0)

以下是使用上面bingjie2680发布的解决方案的index.php的完整代码。它有效。

<?php get_header(); ?>

  <div id="main_content">

  <h1><a href="<?php echo get_settings('home'); ?>">Numen News &amp; Blog</a></h1>

    <?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    query_posts("showposts=5&paged=$paged");
    ?>

      <?php if (!is_single() && !is_page() && !is_front_page()) : ?><h1><?php wp_title(' ', true, 'right'); ?></h1><?php endif; ?>

        <?php /* begin the loop */ if (have_posts()) : ?>

      <table>
        <tr>
        <?php $counter=1; ?>
        <?php while (have_posts()) : the_post(); ?>
             <td>
             <?php if (is_page()) : /* show page contents */ ?>


                <div class="pagecontent" id="post-<?php the_ID(); ?>">
                    <h1><?php the_title(); ?></h1>
                    <?php the_content('Read more &rarr;'); ?> 
                    <p><?php wp_link_pages('next_or_number=number&pagelink=page %'); ?></p>
                    <p><?php edit_post_link('Edit', '[ ', ' ]'); ?></p>  
                </div>
                <?php comments_template(); ?>


              <?php else : /* show post contents */ ?>

                <div class="post" id="post-<?php the_ID(); ?>">
                    <div class="postcontents">

                        <?php if (!is_single()) : ?>
                            <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
                        <?php else : ?>
                            <h1><?php the_title(); ?></h1>
                        <?php endif; ?>

            <div class="posted">Posted <?php the_time('F jS, Y') ?> by <?php the_author_link(); ?> </div>

                        <?php the_content('Read more &rarr;'); ?> 
                        <p><?php wp_link_pages('next_or_number=number&pagelink=page %'); ?></p>    
                    </div>

                    <?php if(is_single) comments_template(); ?>
                </div>


        <?php endif; /* end if page or post */ ?>
            </td>
            <?php if($counter%2==0) echo '</tr><tr>';
                  $counter++;
            ?>
        <?php endwhile;/* end the main loop */ ?>
        </tr>
      </table>



        <?php /* post navigation */ ?>
        <?php if (is_single()) : ?>
            <div class="postnavigation">
                <?php previous_post_link('%link', '<span>&larr;</span> Previous post') ?>
                <?php next_post_link('%link', 'Next post <span>&rarr;</span>') ?>
            </div>
        <?php endif; ?>
        <?php if (  $wp_query->max_num_pages > 1 ) : ?>
            <div class="postnavigation">
                <?php next_posts_link('Older posts <span>&rarr;</span>') ?>  
                <?php previous_posts_link('<span>&larr;</span> Newer posts') ?>
            </div>
        <?php endif; ?>

        <?php endif; /* end if have_posts */ ?>      

  </div><!--END main_content -->

<?php /* sidebar */ get_sidebar(); ?>
<?php /* footer */ get_footer(); ?>