2011-11-30 166 views
0

我正在嘗試爲Wordpress網站編寫模板以用作靜態首頁(包含一些動態內容)。我創建了頁面,並將其設置爲使用我的「主頁」模板(保存在frontpage.php中)。這frontpage.php文件與我的page.php文件相同,用於顯示「關於」和「聯繫人」之類的頁面。但是,當我轉到我的首頁時,它會顯示所有三個頁面的內容:主頁,關於和聯繫。Wordpress靜態主頁模板

看起來像Wordpress循環,它只是獲取關於和聯繫單個頁面的內容,當我訪問家庭時,獲取所有頁面的內容。什麼可能導致這個?

page.php看起來像這樣:[使用WordPress 3.2.1]

<?php get_header(); ?> 

<div id="content"> 
<?php while(have_posts()) : the_post() ?> 
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
     <h2 class="entry-title"><?php the_title(); ?></h2> 

     <div class="entry-content"> 
<?php the_content(); ?> 
     </div><!-- .entry-content --> 

     <?php edit_post_link('Edit', '<p>', '</p>'); ?> 

    </div><!-- #post-<?php the_ID(); ?> --> 
<?php endwhile; ?> 
</div><!-- #content --> 

<?php get_footer(); ?> 

+0

請注意,您有一個未打開的標籤。並且請添加更多的代碼,因爲這部分看起來很好。如果你確定這個模板和你的frontpage.php是相同的,確保你在Wordpress管理中使用了正確的模板。 –

+0

對不起 - 在我從這個示例代碼中刪除了一些格式之後,這個問題留在了這裏。沒有任何結構 - 例如,只是從該標題中刪除了冗長的鏈接。修復了代碼。 –

+0

@Justus Romijn我相信這些文件是一樣的。我做了修改 - 我將主頁恢復爲默認模板,然後創建一個'page-home.php'作爲'page.php'的副本,並添加了一條評論來標識它。當我加載我的主頁時,評論在那裏,並且顯示所有三頁。 –

回答

0

最後,我無法弄清楚發生了什麼事情錯了。我所做的就是創建了一個名爲主頁的靜態頁面,在page-home.php做了一個自定義模板它,並重定向index.php到主頁的URL像這樣:

<meta HTTP-EQUIV="REFRESH" content="0; url=<?php bloginfo('url'); ?>/home/"> 

這並不理想,但它工作得很好。

0

因爲你有while循環,它會顯示所有的頁面,只是while循環之前,改以下代碼來改變查詢。

<?php get_header(); ?> 
<div id="content"> 
<?php 
query_posts('p=5');//substitute 5 with the front page id 
while(have_posts()) : the_post() ?> 
....the same... 

希望它有幫助。

+0

我想知道的是爲什麼當我訪問我的關於頁面時,while循環只顯示關於頁面,但是當我訪問我的主頁時,它顯示所有頁面。感謝您的語法,但 - 我可能不得不訴諸於此! –

+0

這是一個很好的問題,我的猜測是它基於WP提交的查詢字符串,試圖在循環之前在兩個頁面中捕獲$ query_string,並查看有什麼不同。 – bingjie2680

+0

因爲當你傳遞the_permalink參數並且點擊它時,它傳遞了頁面id,並且你的page.php在內部運行該id文章的查詢,因爲你剛剛在page.php中檢查了has_posts()並且在家中運行while循環。 –

0

你可能想看看你的WordPress的管理員在「設置 - >閱讀」。默認情況下,主頁是文章列表,您需要將其更改爲靜態頁面。希望這可能會解決你的問題!

例低於WordPress站點我打造具有名爲Homepage作爲頭版靜態頁面: enter image description here