programing

단일 페이지 워드프레스를 나뭇가지로 렌더링하는 방법

skycolor 2023. 3. 18. 08:25
반응형

단일 페이지 워드프레스를 나뭇가지로 렌더링하는 방법

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

그러면 템플릿이 표시되지만 템플릿의 페이지 제목이 홈 페이지의여기에 이미지 설명 입력 제목으로 설정됩니다.

이 문제를 해결하는 데 도움을 주시면 정말 감사하겠습니다.

제가 당신의 질문을 맞혔는지 모르겠지만 비슷한 문제를 인용합니다.

싱글 투고 페이지에서 single_post_title이 아닌_title을 사용하고 있었습니다.

그러니까 바꿔봐

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

로.

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

관련 항목도 참조하십시오.

  • https://codex.wordpress.org/Function_Reference/single_post_title - outside 루프 사용
  • https://codex.wordpress.org/Function_Reference/the_title - 내부 루프 사용

질문이 좀 애매하네요.그러나 이 단일 페이지에 표시되는 모든 단일 페이지에 "HOME"이라는 제목이 있는 것이 주요 문제라면, 이 작업을 수행해야 합니다.

변경해 보겠습니다.

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

다음과 같이 입력합니다.

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

소제목에도 효과가 있다면 제목에도 효과가 있을 것입니다.

WordPress 테마 내에서 Twig를 사용하고자 한다면 Timber라는 플러그인을 설치하는 것을 강력히 추천합니다.WordPress 고유의 복잡한 통합 작업을 대부분 처리합니다.테마를 정리하는 방법에 대한 더 나은 아이디어를 얻기 위해 확인할 수 있는 첫 번째 테마가 있습니다.https://github.com/timber/starter-theme

또, 포괄적인 메뉴얼도 준비되어 있습니다.이 매뉴얼은 https://github.com/jarednova/timber/wiki 에서 찾을 수 있습니다.

언급URL : https://stackoverflow.com/questions/32767410/how-to-render-a-single-page-wordpress-template-with-twig

반응형