2015-09-24 71 views
19

我一直在嘗試使用樹枝渲染單頁模板,但到目前爲止一切都失敗了。如何使用樹枝渲染單頁WordPress模板

{% extends 'layouts/base.twig' %} 

{% block content %} 
    {% for page in pages() %}{{ set_up_page(page) }}         
     {% include 'content/content-' ~ page.post_name ~ '.twig' %} 
    {% endfor %} 
{% endblock %} 

什麼的模板之一的樣子:

<section id="about" {{ wp.post_class }}> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-lg-12 text-center"> 
       <h2 class="section-heading">{{ wp.the_title }}</h2> 
       <h3 class="section-subheading text-muted">{{ wp.get_post_meta(wp.get_the_ID() , 'st_page_subtitle', true) }}</h3> <!-- To be Changed to subtext for title --> 
      </div> 
     </div> 
     <div class="row"> 
      <div class="col-lg-12"> 
      {{ wp.the_content }} 
      </div> 
     </div> 
    </div> 

對應的功能:

 $wpgetpages = new Twig_SimpleFunction("pages", function() { 

       $currentID = get_the_ID(); 

       $menu_order = wp_get_nav_menu_items('header'); 

       $menu_items = array(); 

       foreach($menu_order as $item) { 

        $menu_items[] = $item->ID; 
       } 

       $args = array('post_type' => 'page', 
           'status' => 'publish',         
           'exclude'=> $currentID, 
           'orderby' => 'menu_order',         
           'order' => 'ASC' 
          ); 

       $pages = get_posts($args); 

       return $pages; 

     });  

     $wpsetpages = new Twig_SimpleFunction("set_up_page", function($arg) { 

       setup_postdata($arg);      

     }); 

     self::$twig_environment->addFunction($wpposts); 
     self::$twig_environment->addFunction($get_theme_options); 
     self::$twig_environment->addFunction($wppostdata);   
     self::$twig_environment->addFunction($wpgetpages); 
     self::$twig_environment->addFunction($wpsetpages); 

這帶出了模板,但它的設置頁面標題模板作爲主頁的標題enter image description here

真的很感謝任何幫助解決這個問題。

+0

它看起來並不像你分享了負責輸出頁面標題的模板代碼... – rnevius

+0

@rnevius我添加了一個呈現的模板 – Bazinga777

+0

您是否嘗試過使用'wp.title'? – rnevius

回答

1

不知道如果我得到你的問題的權利,但報價a similar issue

在我的單篇文章頁面,我用single_post_title的the_title代替。

所以嘗試改變

<h2 class="section-heading">{{ wp.the_title }}</h2> 

<h2 class="section-heading">{{ wp.single_post_title }}</h2> 

另外,查看相關:

+0

它沒有工作。我仍然遇到同樣的問題 – Bazinga777

0

你的問題有點不清楚。但是,如果你的主要問題是在這個單一頁面上呈現的所有單個頁面的標題都是「HOME」,那麼應該這樣做。

嘗試修改此:

<h2 class="section-heading">{{ wp.the_title }}</h2> 

這樣:

<h2 class="section-heading">{{ wp.get_post_meta(wp.get_the_ID() , 'title', true) }}</h2> 

如果它適用於它應該爲標題的工作太的副標題。

+0

這正是我的問題,但我已經完成get_the_ID(),並返回當前頁面的ID,即主頁。這讓我感到困惑。 – Bazinga777

+0

您使用的是什麼WP版本?我會嘗試在我的開發盒中重新創建錯誤。 – cb0

+0

Im 4.3.1,以下是主題鏈接https://www.dropbox.com/s/6wxxkee7k6v8h40/sprig.zip?dl=0 – Bazinga777

0

如果您嘗試在WordPress主題中使用Twig,我強烈建議安裝一個名爲Timber的插件。它爲您處理了許多複雜的WordPress特定集成。他們有一個啓動主題,你可以檢查出得到的如何把你的主題一起更好的主意:https://github.com/timber/starter-theme

他們也有全面的文檔,你可以在這裏找到:https://github.com/jarednova/timber/wiki