Buscar..


Sintaxis

  • template –– es el nombre del tema principal de WordPress, el principal.
  • child-theme –– es el paquete que anula la plantilla .

Observaciones

He estado anunciando que el uso de un tema infantil siempre es bueno, pero siempre hay un Pero ...

En nuestro ejemplo de sobreescritura de plantillas, imaginemos que el autor de un tema está agregando sus propias mejoras a la plantilla de la barra lateral y habrá una nueva en

/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; ?>

Ahora nuestro sitio web no se beneficiará de la nueva especificación de role="complementary" porque nuestro tema secundario aún está sobrescribiendo la plantilla con su propio archivo en /themes/child-theme/sidebar.php

Es nuestro deber como mantenedores de sitios web hacer un seguimiento de las plantillas que sobrescribimos y, en el caso inminente de una actualización, observar atentamente el registro de cambios para que pueda actualizar los archivos de temas secundarios si es necesario.

2) El propósito

Los temas secundarios están diseñados para ser una forma segura de mantener las personalizaciones de la plantilla principal sin temor a perderlas en una actualización del tema.

Básicamente, cada vez que desee editar un archivo dentro de la plantilla activa de su sitio web, debe preguntarse " ¿Qué sucederá cuando actualizaré el tema?

Y la respuesta es simple: los pierdes porque la actualización traerá una carpeta de tema completamente nueva .

Así que veamos un tema secundario como una carpeta con archivos que sobrescribirá los archivos con la misma ruta en el tema principal. Ahora vamos a traer algunos ejemplos reales:

Definición y requisitos.

WordPress identifica un tema secundario cuando hay un directorio (por ejemplo, child-theme ) dentro de /wp-content/themes/ con los siguientes archivos:

  • style.css

    Este archivo debe comenzar con una plantilla de comentarios como esta:

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

    Las cosas más importantes a considerar aquí son:

    • El nombre de la Template debe ser exactamente el nombre de la carpeta que contiene el tema principal (también conocido como la babosa del tema principal)

    • Asigne un nombre al tema de su hijo de tal manera que pueda identificarlo fácilmente en el Tablero de instrumentos (normalmente solo agregue Child al nombre del padre, como Example Child )

  • index.php

  • functions.php

3) sobrescritura de plantillas

El uso más común de un tema secundario es anular partes de la plantilla. Por ejemplo, una barra lateral, si tenemos un tema con el siguiente archivo en

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

Definitivamente podemos agregar nuestro propio archivo en tema infantil (con las especificaciones del primer ejemplo) con el siguiente archivo

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

Ahora my-own-awesome-class está a salvo en el tema infantil y no se eliminará en ninguna actualización del tema y WordPress siempre elegirá una plantilla de los temas secundarios cuando encuentre una en la misma ruta.

Reemplazo de activos

Incluso si no es una buena práctica, a veces necesita reemplazar activos como archivos o bibliotecas CSS o JS.

Tenga en cuenta que el sistema de sobrescritura de plantillas de WordPress no funciona con nada más que los archivos .php , por lo que cuando hablamos de activos nos referimos a activos registrados.

Un ejemplo podría ser el reemplazo de la biblioteca jQuery con su versión deseada. En nuestro archivo de functions.php temas secundarios functions.php debemos agregar una función que elimine la versión actual de jQuery y agregar la nuestra desde CDN (recuerde que es solo un ejemplo).

/**
 * 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow