2015-09-24 15 views
19

Ho cercato di eseguire il rendering di un modello di wordpress a pagina singola con Twig, ma finora tutto ha fallito.come eseguire il rendering di un modello wordpress a pagina singola con ramoscello

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

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

Che uno dei modelli appare come:

<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> 

le corrispondenti funzioni:

 $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); 

Questo mette in evidenza i modelli ma imposta il titolo della pagina dal modello come titolo della home page enter image description here

Apprezzerei davvero qualsiasi aiuto nel risolvere questo problema.

+0

Non sembra come te Ho condiviso il codice del modello responsabile per l'output del titolo della pagina ... – rnevius

+0

@rnevius Ho aggiunto uno dei modelli che è reso – Bazinga777

+0

Hai provato semplicemente a usare 'wp.title'? – rnevius

risposta

1

Non sono sicuro se ho ricevuto la tua domanda giusta, ma citando a similar issue

sulla mia pagina singolo post, stavo usando the_title invece di single_post_title.

Quindi provare a cambiare

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

a

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

Inoltre, vedi correlati:

+0

Non ha funzionato. Ho ancora lo stesso problema – Bazinga777

0

La domanda è un po 'poco chiara. Ma se il tuo problema principale è che tutte le singole pagine renderizzate in questa singola pagina hanno l'intestazione "HOME", questo dovrebbe farlo.

Prova a cambiare questo:

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

a questo:

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

Se funziona per il sottotitolo dovrebbe funzionare per il titolo anche.

+0

Questo è esattamente il mio problema, ma avevo già fatto get_the_ID() per lo stesso e restituisce l'ID della pagina corrente nella home page. Questo è ciò che mi ha confuso. – Bazinga777

+0

Quale versione WP stai usando? Cercherò di ricreare l'errore nella mia casella di sviluppo. – cb0

+0

Im su 4.3.1, Ecco il link al tema stesso https://www.dropbox.com/s/6wxxkee7k6v8h40/sprig.zip?dl=0 – Bazinga777

0

Se si sta tentando di utilizzare Twig in un tema WordPress, si consiglia vivamente di installare un plugin denominato Timber. Si prende cura di molte delle complicate integrazioni specifiche di WordPress per te. Hanno un tema di avviamento è possibile controllare per avere una migliore idea di come mettere insieme il tema: https://github.com/timber/starter-theme

Hanno anche una documentazione completa, che potete trovare qui: https://github.com/jarednova/timber/wiki