2010-08-02 191 views
3

我在我的網站上有三個頁面。我們稱他們爲home,page2和page3。 我的'主頁'頁面設置爲靜態首頁。我的'page2'被設置爲博客頁面。在兩頁上顯示Wordpress帖子

我想是這樣的:

我想第2頁顯示與特定類別(其中ID是已知的)的博客文章。

AND

我想PAGE3,以顯示與特定類別(其中ID是已知的)的博客文章。

的PHP代碼,只顯示帖子與某一類(或實際上在我的情況,但不包括兩類顯示帖子)如下:

<?php query_posts($query_string . '&cat=-3,-8'); ?> 
<?php if (have_posts()) : ?> 
    <?php while (have_posts()) : the_post(); ?> 
     <div class="post" id="post-<?php the_ID(); ?>"> 
     <h3><a href="<?php the_permalink() ?>" rel="bookmark" 
      title="Permanent Link to <?php the_title_attribute(); ?>"> 
      <?php the_title(); ?></a></h3> 
     <?php the_excerpt('Read the rest of this entry &raquo;'); ?> 
     </div><!-- /.post--> 

現在,在我的page.php文件,我有下面的代碼與一個類別以顯示帖子:

<?php 
    // BEGIN IF PAGE is newspaper articles page 
    if (is_page('newspaper')) { 

     //BEGIN POST REGION 

     query_posts($query_string . '&cat=8'); ?> 
     <?php if (have_posts()) : ?> 
      <?php while (have_posts()) : the_post(); ?> 
       <div class="post" id="post-<?php the_ID(); ?>"> 
       <h3><?php the_title(); ?></h3> 

       <?php the_content('Read more &raquo;'); ?> 


       </div><!-- /.post--> 

      <?php endwhile; ?> 

     <?php else : ?> 

     <?php endif; ?> 

     <?php 

    } //end if is_page 
?> 

但它不顯示(在這個問題上還是第3頁)本報頁面上的適當的職位。但是,它的確適用於文章頁面(main index.php博客頁面)。

編輯:我也試過以下(但它不工作)。我把這個index.php文件:

<?php 
if (is_page('newspaper') || is_home()) { // START if is home 

?> 
<?php if (have_posts()) : ?> 
    <?php while (have_posts()) : the_post(); ?> 
     <div class="post" id="post-<?php the_ID(); ?>"> 
      <h3><a href="<?php the_permalink() ?>" rel="bookmark" 
       title="Permanent Link to 
       <?php the_title_attribute(); ?>"> 
       <?php the_title(); ?></a></h3> 

      <!--<p><?php the_time('F jS, Y') ?> <?php //the_author() ?></p>--> 

      <?php the_excerpt('Read the rest of this entry &raquo;'); ?> 


     </div><!-- /.post--> 

    <?php endwhile; ?> 

<?php else : ?> 

<?php endif; ?> 

<?php 
} //end if is_home() or is_page() 
?> 

這再次顯示了主要的博客頁面上的帖子,但不顯示報紙頁面上的任何職位......

的問題是因此很簡單(我認爲)。如何在除主博客頁面以外的其他頁面上顯示帖子?

謝謝! Amit

回答

3

東西,而不是排除類別和排除網頁和更改標準的WordPress循環,使用新的查詢,例如:

<?php $my_query = new WP_Query('category_name=mycategory&showposts=1'); ?> 
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?> 
<h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> 
<?php the_title(); ?></a></h3> 
<?php the_excerpt('Read the rest of this entry &raquo;'); ?> 
<?php endwhile; ?> 

這可以在標準的WP環路內使用,並使用多次在頁面/帖子或頁面模板中不衝突。 (啓用PHP執行以在頁面/帖子編輯器中使用它)。 Function Reference/WP Query « WordPress Codex

這也能很好地使用頁面模板來創建博客文章不同的網頁:Page Templates « WordPress Codex,但不要忘了,WP也使用類別頁面也一樣,這取決於你的主題:Category Templates « WordPress Codex.

+0

讓我試試你的方式。我必須說,我已經閱讀過Wordpress論壇,使用兩個不同的頁面來顯示兩種不同類型的帖子是不可能的。相反,您可以使用類別,其中顯示的頁面實際上是類別的存檔。但是,如果您的解決方案有效,那麼您爲我節省了大量工作。 – Amit 2010-08-02 15:43:34

+0

不幸的是,使用類別不適合我,因爲需要在其中包含帖子的兩個頁面是父鏈接的下拉頁面(並且我使用的是動態導航,而不是硬編碼)......沒有辦法給一個類別一個父頁面(只有一個父類別)。 – Amit 2010-08-02 15:45:02

+0

這工作。你是一個天才。 – Amit 2010-08-02 15:48:31

0

在is_page('newspaper')中使用字符串'newspaper'是問題的潛在來源。它可能很容易拼錯。 你有沒有嘗試過使用頁面ID?像

is_page('999') 
+0

這不是一個問題拼寫錯誤。我也嘗試過page_id以及 – Amit 2010-08-02 15:42:38

相關問題