Подтвердить что ты не робот

Как сделать одностраничный шаблон Wordpress с веточкой

Я пытаюсь сделать один шаблон Wordpress с помощью Twig, но пока все провалилось.

{% 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);  

Это выводит шаблоны, но устанавливает заголовок страницы из шаблона в качестве заголовка главной страницы введите описание изображения здесь

Было бы очень полезно помочь в устранении этого.

4b9b3361

Ответ 1

Не уверен, правильно ли я получил ваш вопрос, но цитировал аналогичную проблему

На моей единственной странице страницы я использовал the_title вместо single_post_title.

Итак, попробуйте изменить

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

к

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

Также см. ссылку:

Ответ 2

Вы сомневаетесь, немного неясно. Но если ваша основная проблема заключается в том, что все отдельные страницы, представленные на этой странице, имеют заголовок "HOME", это должно сделать это.

Попробуйте изменить это:

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

:

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

Если он работает для подзаголовка, он также должен работать для заголовка.

Ответ 3

Если вы пытаетесь использовать Twig внутри темы WordPress, я настоятельно рекомендую установить плагин под названием Timber. Он заботится о большой сложности интеграции WordPress для вас. У них есть стартовая тема, которую вы можете проверить, чтобы лучше понять, как объединить вашу тему: https://github.com/timber/starter-theme

У них также есть полная документация, которую вы можете найти здесь: https://github.com/jarednova/timber/wiki