WordPress get_template_directory_uri no funciona con un tema secundario

2 minutos de lectura

entonces estoy usando mr tailor junto con un tema hijo. Las carpetas de temas se nombran en consecuencia: mrtailor y mrtailor-child.

Pero en el administrador de temas en el tablero se llaman: Mr. Tailor y Mr. Tailor Theme. Acabo de mencionar esto, porque generalmente agrega el child al final en lugar de un theme.

El problema es que anulo algunas de las funciones y las coloco en el tema secundario. Los guiones funcionan bien, apuesto a que get_template_directory_uri() devuelve el uri del tema principal.

Aquí hay un ejemplo de una de las funciones anuladas si eso va a ayudar:

<div class="row">
    <div class="large-10 text-center large-centered columns">

        <div class="cart-empty-banner cart-wishlist-empty-banner">
            <img id="cart-empty-img" alt="cart-empty-image"  width="480" height="233"  src="https://stackoverflow.com/questions/24882389/<?php echo get_template_directory_uri() ."/images/empty_cart_black.png'; ?>" data-interchange="[<?php echo get_template_directory_uri() . '/images/empty_cart_black.png'; ?>, (default)], [<?php echo get_template_directory_uri() . '/images/empty_cart_black_retina.png'; ?>, (retina)]">
        </div>

        <p class="cart-empty cart-wishlist-empty"><?php _e( 'Your cart is currently empty.', 'mr_tailor' ) ?></p>

        <?php do_action( 'woocommerce_cart_is_empty' ); ?>

        <p class="return-to-shop"><a class="wc-backward" href="<?php echo get_permalink( wc_get_page_id( 'shop' ) ); ?>"><?php _e( 'Return To Shop', 'mr_tailor' ) ?></a></p>

    </div><!-- .large-10-->
</div><!-- .row-->

Cualquier ayuda u orientación es muy apreciada.

Eso es lo que get_template_directory_uri() hacer, recupera el directorio de plantillas de un tema, o en otras palabras, el padre tema

Para temas secundarios, deberías usar get_stylesheet_directory_uri() que recupera la ruta del directorio de la hoja de estilo, que es utilizada por niño temas

  • Muchas gracias, eso era todo lo que necesitaba.

    – Domas

    22 de julio de 2014 a las 10:17

  • ¿Qué pasa con la ruta JS?

    – Vaibhav Singhal

    30 de marzo de 2017 a las 16:11

avatar de usuario
Naved Ali

Puedes usar get_stylesheet_directory() para incluir cualquier archivo en su tema hijo functions.php expediente. Aquí hay un ejemplo;

include (get_stylesheet_directory() . '/myWidget/newsWidget.php');
where I have `newsWidget.php` file in myWidget folder which is in childtheme directory.

Recuerde la diferencia crucial entre

get_stylesheet_directory() y get_stylesheet_directory_uri()
donde el primero lo redirigirá al directorio de temas secundarios, mientras que el segundo lo redirigirá a style.css archivo de su tema hijo.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad