Obtener imágenes desde el directorio del tema en las páginas

14 dic 2015, 04:25:47
Vistas: 81.3K
Votos: 15

Sí, sé que tenemos get_template_directory_uri(); para hacer referencia al directorio del tema. Funciona cuando pongo el siguiente código dentro de index.php o en header.php:

<img src="<?php echo get_template_directory_uri(); ?>/images/sample.png">

Pero cuando estoy añadiendo una imagen dentro de las páginas al editar mediante texto, no en visual, no funciona. ¿Cómo puedo obtener las imágenes del directorio de imágenes del tema en las páginas?

¡Gracias!

5
Comentarios

Parece que estás intentando agregar código PHP a través del editor de contenido?

birgire birgire
14 dic 2015 04:30:15

@birgire sí, lo estoy agregando de esa manera. ¿Existen otras soluciones?

ajdeguzman ajdeguzman
14 dic 2015 04:31:26

Eso no funcionará por razones de seguridad. ¿No quieres usar la URL completa de la imagen? En general, recomendaría evitar usar imágenes específicas del tema en el contenido, porque cuando cambias y eliminas el tema antiguo, estas imágenes desaparecerán. Por lo tanto, consideraría usar /wp-content/uploads/ para las imágenes del contenido.

birgire birgire
14 dic 2015 04:33:01

@birgire mi única preocupación es la organización del directorio de imágenes, por eso lo estoy colocando dentro del directorio del tema. ¿Es posible organizar carpetas dentro de wp-contents/uploads?

ajdeguzman ajdeguzman
14 dic 2015 04:35:12

Para pocas imágenes, simplemente las subiría a través de la Biblioteca Multimedia. Si necesitas alguna forma de identificarlas, existen plugins que te permiten etiquetar (categorizar) imágenes.

birgire birgire
14 dic 2015 04:42:32
Todas las respuestas a la pregunta 6
2
<img src="<?php echo esc_url( get_template_directory_uri() . '/images/logo.jpg' ); ?>" alt="" >

Prueba esto. Debería funcionar. Tienes que concatenar los resultados de get_template_directory_uri() y tu directorio de imágenes en el echo.

24 mar 2021 11:58:32
Comentarios

Sr. Glorfindel, gracias por editar mi publicación. Si la considera correcta, por favor vote a favor. Realmente me daría un buen comienzo en stackexchange. Gracias de antemano

Kaif Ahmad Kaif Ahmad
25 mar 2021 14:19:20

Deberías hacer Security Escape - get_template_directory_ur ."WordPress.Security.EscapeOutput.OutputNotEscaped] Toda salida debe pasar por una función de escape (consulta las secciones de Seguridad en los Manuales para Desarrolladores de WordPress), se encontró 'get_template_directory_uri'.

Nuno Sarmento Nuno Sarmento
22 abr 2022 13:35:18
0

Shortcode es el camino a seguir, algo como esto (en functions.php o como plugin) funcionaría:

// [template_dir image="algo.jpg"]
add_shortcode( 'template_dir', function( $atts ){
    return get_template_directory_uri() . '/images/' . $atts['image'];
});
16 feb 2018 10:58:13
1

No es posible utilizar código PHP en el editor. Puedes usar una imagen con la ruta completa.

<img src="/wp-content/themes/your-theme/assets/images/1.jpg" />

En general, evitaría usar imágenes específicas del tema en el contenido, porque cuando cambias y eliminas el tema antiguo, estas imágenes desaparecen. Por lo tanto, consideraría usar /wp-content/uploads/ para las imágenes del contenido.

17 mar 2017 17:07:59
Comentarios

esta es una buena solución. <img src="<?php echo get_template_directory_uri().'/images/sample.png'; ?>">

Mohammad Ayoub Khan Mohammad Ayoub Khan
13 jun 2021 19:50:14
0

La respuesta es sí. Podrías ejecutar código php en el editor. Pero esa no es la forma correcta de agregar imágenes. En su lugar, deberías crear shortcodes para obtener esas imágenes desde la carpeta del tema o usar códigos como el siguiente:

<img src="/wp-content/themes/tu-tema/assets/images/1.jpg" />

Al eliminar el nombre del dominio, incluso podría beneficiar las solicitudes http. Si eliminar el dominio no funciona, podrías incluso instalar plugins de ejecución php para wordpress. Hay algunos plugins al respecto. Para entender más, deberías leer este artículo. Espero que eso pueda resolver tus problemas :). Buena suerte con los códigos.

14 dic 2015 04:50:10
0
13 feb 2017 14:00:50
0

get_template_directory_uri()

Una búsqueda rápida a través del código núcleo de WordPress muestra dos tratamientos diferentes. Esta función necesita ser escapada cuando se utiliza dentro de un atributo de etiqueta.

<img src="<?php echo esc_url( get_template_directory_uri() . '/images/logo.jpg' ); ?>" alt="" >

Cuando se usa dentro de wp_enqueue_style() o wp_enqueue_script(), no se escapa:

wp_enqueue_script( 'theme-customizer', get_template_directory_uri() . '/js/customizer.js', array( 'customize-preview' ), '', true );

Sin embargo, al analizar la función en sí, tiene un filtro justo antes de devolver los valores, lo que la hace sospechosa: puede ser filtrada en plugins y no sabemos exactamente qué se devuelve. La regla general en esta situación sería "más vale prevenir que lamentar" y siempre escaparla.

22 abr 2022 13:34:32