2012-09-29 65 views
1

背景:我正在搞WordPress的主題開發。我是小白。我已經完成了關於如何開發主題的多個教程。我目前正在處理的主題在網頁競賽中存在問題,我認爲。我正在MAMP上構建它(如果這很重要)。這個新主題現在沒有太多。我剛開始製作所有我認爲需要的模板文件。除「index.php」和「style.css」之外的所有內容均爲空白。函數文件中也沒有任何內容。所有關於頁眉和頁腳和菜單的信息目前只是在「index.php」中。WordPress page.php與index.php競爭

問題:當我在主題文件夾中包含文件「page.php」時,頁面上沒有加載任何東西。我的意思不僅僅是視覺。模板中沒有任何元素出現在頁面上。我在主題文件夾中也有「index.php」。當「page.php」從文件夾中刪除時,主題將加載所有內容。據我的理解,根據WordPress Hierarchy該索引在頁面模板之前被調用。我打算使用網頁。所以在我看來,「page.php」正在與index.php競爭並打破模板。

問題:「page.php」是「index.php」的競爭對手,我該如何解決這個問題纔不會破壞我的主題?爲什麼它可以在我的主題上而不是在其他人上做到這一點?

我已經試過:

  • 複製 「的index.php」 到 「page.php文件」 的內容。然後按預期載入主題,但我預計這會導致問題。
  • 將頁面模板留空與索引模板充滿代碼不會產生任何內容。在頁面充滿代碼的情況下留下索引空白會導致主題加載。
  • 從另一個主題複製了「page.php」。主題打破了。從另一個主題複製索引。仍然破碎。
  • 更改CSS只是爲了確保我沒有任何導致這些元素不顯示的CSS。雖然如此,當我使用螢火蟲或查看源代碼時,它們甚至不會顯示出來。

我讀過:我做我的功課,嘗試一個解決問題,而不必問堆棧另一個問題,但我似乎無法找到任何人與此相同的問題(這只是讓我覺得這可能是明顯的,我做錯了,但因爲我是一個noob,我錯過了或什麼)。我已經通過了所有這些在他們的整體閱讀:

任何有關此事的幫助將不勝感激。這裏是這個索引的內容。php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     <title>WordPress Training Wheels</title> 

     <link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" /> 
     <link href='http://fonts.googleapis.com/css?family=Dancing+Script:400,700' rel='stylesheet' type='text/css'> 
    </head> 

    <body> 

     <div id="container" class="container_16"> 

      <div id="header" class="grid_16"><!-- Header Begins Here --> 
       <h1><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a></h1> 
       <h2><?php bloginfo('description'); ?></h2> 
       <?php 
       wp_nav_menu(
         array(
          'theme_location' => 'top_header', 
          'container' => 'div', 
          'container_id' => 'top-menu', 
          'menu_class' => 'top-menu-list', 
          'fallback_cb' => 'false' 
       )); 
       ?> 
      </div> 

      <?php 
      wp_nav_menu(
        array(
         'theme_location' => 'bottom_header', 
         'container' => 'div', 
         'container_id' => 'menu', 
         'menu_class' => 'bottom-menu-list' 
      )); 
      ?> 

      <div id="content"> 

       <div class="sidebar left grid_3"><!-- Left Sidebar Begins Here --> 
        <h4>Sidebar Header</h4> 
        <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Left Sidebar')) : ?> 
         <h3 class="widget-title">Categories</h3> 
         <ul> 
          <?php wp_list_categories(); ?> 
         </ul> 
         <h3 class="widget-title">Archives</h3> 
         <ul> 
          <?php wp_get_archives(array('type' => 'monthly')); ?> 
         </ul> 
        <?php endif; ?> 
       </div> 

       <div id="middle-column" class="grid_6"><!-- Main Content Begins Here --> 
        <h3>Training Wheels Lesson 1</h3> 
        <p><img src="<?php bloginfo('template_directory'); ?>/images/training-wheels.jpg" width="426" height="142" alt="Training Wheels" /></p> 
       </div> 

       <div class="sidebar right grid_3"><!-- Right Sidebar Begins Here --> 
        <h4>Sidebar Header</h4> 
        <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Right Sidebar')) : ?> 
         <h4>No Widgets added</h4> 
         <p>Please login and add some widgets to this sidebar</p> 
        <?php endif; ?> 
       </div> 

       <div style="clear:both;"></div> 

      </div><!-- Content Ends Here --> 

      <div id="footer"><!-- Footer Content Begins Here --> 
       <p>&copy; Wordpress Training Wheels, by wpbedouine</p> 
      </div> 

     </div> 

    </body> 

</html> 

回答

2

經過大量的搜索,我相信我找到了解決方案。 「home.php」並沒有被這個主題所使用,因爲我在頂部的評論中沒有重要的一行。我說:

<?php 
/* 
Template Name: Front Page 
*/ 
?> 

爲「home.php」的頂部,然後去到可溼性粉劑管理員並點擊頁面>所有頁>回家。然後,我在頁面編輯器的右側找到一個名爲「模板」的下拉列表項。我將它從「默認模板」更改爲「首頁」。

我想我讀取層次結構的方式讓我假設WordPress會自動使用「home.php」或「front-page.php」作爲主頁的模板。顯然這是一個不正確的假設,因爲在評論中沒有這行代碼並告訴它使用什麼樣的模板,WordPress只會使用page.php作爲模板。

至少,這在我看來是如此。任何人想要改善這個答案或作出更正請做。

0

只是一個想法,但你的主頁可以設置爲一個頁面,而不是博客?如在設置>閱讀中。 http://codex.wordpress.org/Creating_a_Static_Front_Page

否則,我不明白爲什麼你的主頁將使用page.php而不是index.php。

+0

嗯...我檢查了它,它說主頁設置爲「博客」。但我試圖改變它到一個頁面,並沒有改變任何東西。當主頁設置爲一個頁面時,比如「home」,是不是會使用「home.php」而不是「page.php」? –

+0

如果你有home.php,是的,它會的。您還可以嘗試查看添加front-page.php時發生的情況。這似乎很奇怪。其他主題會發生同樣的事情嗎?或者只是你的? – coopersita