【问题标题】:Output recent Wordpress posts in tables, 2 posts wrapped in tr tag?在表格中输出最近的 Wordpress 帖子,用 tr 标签包裹 2 个帖子?
【发布时间】:2011-12-16 15:17:51
【问题描述】:

我正在设计一个自定义 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(); ?>

有什么建议吗?

【问题讨论】:

    标签: php html wordpress


    【解决方案1】:

    试试这段代码,为了便于阅读,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>
    

    【讨论】:

    • 看起来很简单,但现在页面无法加载。我只是得到一个白屏。我刚刚在上面原始问题的末尾发布了新代码(笨拙,但stackoverflow似乎不允许我以任何其他方式这样做)。
    • 您是否正确添加了代码,请记住我的答案中头部、中间和脚部缺少的代码。您必须自己填写缺少的代码。
    • 是的,我按照您的说明输入了缺失的代码。据我所知,我做得正确,但它不起作用。我在我的原始帖子末尾发布了上面编辑过的 index.php 文件(stackoverflow 不允许我在下面发布它)。看一看?看到什么明显的东西了吗?非常感谢。
    • 尝试删除我希望您添加的代码并查看它是否加载。我认为我的代码没有任何问题。
    • 它在没有您的代码的情况下完美加载。很想解决这个问题。还有其他建议吗?再次感谢。
    【解决方案2】:

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

    <?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(); ?>
    

    【讨论】:

      【解决方案3】:

      不要使用表格

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

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

      【讨论】:

      • 虽然我通常不会将表格用于任何结构性的东西,但它们仍然有其优势,我使用它们来创建上面示例中实现的相等高度。 numenfilm.com/preview/issues.php 感谢您的建议,但是如果您查看示例,我认为您的方法无法解决我的目标。除非我误会了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多