수색…


통사론

  • 템플릿 - 기본 WordPress 테마 인 부모의 이름입니다.
  • child-theme - 템플릿 을 덮어 쓰는 패키지입니다.

비고

나는 어린이 주제의 사용이 항상 좋은 것임을 광고했지만 항상 But가 있습니다 ...

템플릿 덮어 쓰기 예제에서는 테마 작성자가 사이드 바 템플릿에 자신 만의 개선점을 추가하고 있다고 가정 해 보겠습니다.

/themes/template/sidebar.php

<?php
/**
 * The template for the sidebar containing the main widget area
 *
 * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
 */

if ( is_active_sidebar( 'sidebar-1' )  ) : ?>
    <aside id="secondary" class="sidebar widget-area" role="complementary">
        <?php dynamic_sidebar( 'sidebar-1' ); ?>
    </aside><!-- .sidebar .widget-area -->
<?php endif; ?>

이제 우리의 웹 사이트는 새로운 주제 인 role="complementary" 사양의 이점을 얻지 못할 것입니다. 왜냐하면 우리의 자식 테마가 /themes/child-theme/sidebar.php 자체 파일로 템플릿 을 덮어 쓰고 있기 때문입니다.

웹 사이트 관리자로서 우리가 덮어 쓰는 템플릿을 추적하고 임박한 업데이트가있을 때 changelog를 신중하게보고 필요할 경우 하위 테마 파일을 업데이트하는 것이 우리의 의무입니다.

2) 목적

자식 테마는 기본 템플릿을 테마 업데이트시 잃어 버릴 염려없이 유지하는 안전한 방법입니다.

기본적으로 웹 사이트에서 활성 템플릿 안의 파일을 편집하려면 언제든지 " 테마를 업데이트 할 때 어떤 일이 생길까요?

대답은 간단합니다. 업데이트로 인해 완전히 새로운 테마 폴더가 만들어지기 때문에 잃어 버리게됩니다 .

자 이제 부모 테마에서 같은 경로로 파일을 덮어 쓸 파일이있는 폴더로 자식 테마를 살펴 보겠습니다. 이제 실제 예를 들어 보겠습니다.

정의 및 요구 사항

하위 테마는 /wp-content/themes/ 안에 다음 파일이있는 디렉토리 (예 : child-theme )가있을 때 WordPress에 의해 식별됩니다.

  • style.css

    이 파일은 다음과 같은 주석 템플릿으로 시작해야합니다.

     /*
     Theme Name: Example Child
     Author: Me
     Author URI: https://example.com/
     Template: example
     Text Domain: example-child-theme
     Domain Path: /languages/
     */
    

    여기에서 고려해야 할 가장 중요한 사항은 다음과 같습니다.

    • Template 이름은 정확히 부모 테마 (즉, 부모 테마 슬러그)를 보유하고있는 폴더 이름이어야합니다.

    • Dashboard에서 쉽게 식별 할 수있는 방법으로 자녀의 이름을 지정하십시오 (일반적으로 Example Child 와 같이 부모의 이름에 Child 를 추가하십시오)

  • index.php

  • functions.php

3) 템플릿 덮어 쓰기

자식 테마의 가장 일반적인 사용법은 템플릿 부분을 재정의하는 것입니다. 예를 들어, 사이드 바, 다음 파일이 포함 된 테마가있는 경우

/themes/template/sidebar.php

<?php
/**
 * The sidebar containing the main widget area.
 *
 * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
 */ 

if ( ! is_active_sidebar( 'sidebar-1' ) ) {
    return;
}?>
<div id="sidebar" class="widget-area">
    <?php dynamic_sidebar( 'sidebar-1' ); ?>
</div>

우리는 다음과 같은 파일을 사용하여 자식 테마 (첫 번째 예제의 스펙 포함)에 자체 파일을 확실히 추가 할 수 있습니다.

/themes/child-theme/sidebar.php

<?php
/**
 * The sidebar containing the main widget area.
 */ 

if ( ! is_active_sidebar( 'sidebar-1' ) ) {
    return;
}?>
<div id="my-sidebar" class="my-own-awesome-class widget-area">
    <div class="my-wrapper">
        <?php dynamic_sidebar( 'sidebar-1' ); ?>
    </div>
</div>

이제 my-own-awesome-class하위 테마 에서 안전하며 테마 업데이트시 삭제되지 않으며 WordPress는 같은 경로에서 템플릿을 찾을 때 항상 하위 테마에서 템플릿을 선택합니다.

자산 교체

모범 사례가 아니더라도 CSS 또는 JS 파일이나 라이브러리와 같은 자산을 대체해야하는 경우가 있습니다.

워드 프레스 템플릿 덮어 시스템보다 아무것도 작동하지 않습니다 .php 파일, 그래서 우리는 자산에 대해 이야기 할 때 우리는 참조 등록 된 자산

한 가지 예는 jQuery 라이브러리를 원하는 버전으로 대체하는 것입니다. 우리의 자식 theme functions.php 파일에서 우리는 현재 jQuery 버전을 제거하고 CDN에서 우리 자신을 추가하는 함수를 추가해야한다.

/**
 * Dequeue the jQuery script and add our own version.
 *
 * Hooked to the wp_print_scripts action, with a late priority (100),
 * so that it is after the script was enqueued.
 */
function my_own_theme_scripts() {
    // remove the current version
    wp_dequeue_script( 'jquery' );
    // register my desired version
    wp_register_script( 'jquery', 'https://code.jquery.com/jquery-3.1.0.min.js', false, '3.1.0' );
    // load my version, here or somewhere else
    wp_enqueue_script( 'jquery' );
}
add_action( 'wp_print_scripts', 'my_own_theme_scripts' );


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow