Вывести последние сообщения Wordpress в виде таблиц, 2 сообщения в теге tr? - PullRequest
0 голосов
/ 16 декабря 2011

Я разрабатываю собственную тему 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>

Таблицы и тэги легко. Проблема, которую я имею, состоит в том, чтобы заставить теги tr обернуть сообщения в группы по два.

Я нашел этот пост в другом месте по переполнению стека:

Таблица, TR каждые 2 цикла, 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 голосов
/ 16 декабря 2011

попробуйте этот код, основной код внутри 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>
0 голосов
/ 17 декабря 2011

Вот полный код из 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(); ?>
0 голосов
/ 16 декабря 2011

Не использовать таблицы .

Если вы хотите продолжить писать плохую разметку, вам нужно сделать что-то вроде этого.

<table>
//wordpress loop starts ( you left that part out)
 <td>
   <tr>
     <?php the_content('Read more &rarr;'); ?>
   </tr>
  </td>
// loop ends
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...