timber php wordpress twig wordpress-theming

php - timber twig documentation



Cómo renderizar una plantilla de wordpress de una sola página con ramita (3)

No estoy seguro si entendí bien tu pregunta pero citando un problema similar

En mi página de publicación única, estaba usando the_title en lugar de single_post_title.

Así que intenta cambiar

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

a

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

Además, ver relacionados:

He estado intentando renderizar una plantilla de wordpress de una sola página con Twig, pero hasta ahora todo ha fallado.

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

Cómo se ve una de las plantillas:

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

Las funciones correspondientes:

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

Esto muestra las plantillas, pero configura el título de la página como el título de la página de inicio.

Realmente agradecería cualquier ayuda para arreglar esto.


Si está intentando usar Twig dentro de un tema de WordPress, le recomiendo que instale un complemento llamado Timber. Se encarga de una gran cantidad de la complicada integración específica de WordPress para usted. Tienen un tema de inicio que puedes consultar para tener una mejor idea de cómo armar tu tema: https://github.com/timber/starter-theme

También tienen una documentación completa, que puede encontrar aquí: https://github.com/jarednova/timber/wiki


Tu pregunta es un poco confusa. Pero si su problema principal es que todas las páginas individuales representadas en esta página única tienen el encabezado "INICIO", debería hacerlo.

Intenta cambiar esto:

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

a esto:

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

Si funciona para el subtítulo, también debería funcionar para el título.