¿Cómo agregar un archivo CSS personalizado en el tema?

13 jul 2012, 11:14:11
Vistas: 174K
Votos: 21

Algunos temas te piden que no edites el archivo style.css, y en su lugar uses un archivo custom.css. Si escribes código en custom.css, éste sobrescribirá el estilo del mismo elemento en style.css. Creo que esto se hace para evitar la pérdida de los estilos personalizados del usuario durante la actualización del tema, ¿es así?

¿Cómo funciona esto? ¿Ya incluyen el archivo custom.css en su tema? Pero, ¿cómo se incluye este archivo en el tema para que busque primero los estilos en custom.css? Gracias.

1
Comentarios

Si la persona que hace esta pregunta es alemana, casi con toda seguridad "overwrite" significa "anular". Supongo que la pregunta no está diciendo que poner código en el archivo custom.css hará que se modifique el archivo style.css. No digo esto para ser crítico, sino que estoy confundido y esta es mi interpretación.

Sam Hobbs Sam Hobbs
7 ago 2016 08:59:27
Todas las respuestas a la pregunta 10
4
39

Usar @import en WordPress para añadir CSS personalizado ya no es la mejor práctica, aunque todavía puedes hacerlo con ese método.

La mejor práctica es usar la función wp_enqueue_style() en functions.php.

Ejemplo:

wp_enqueue_style ('theme-style', get_template_directory_uri().'/css/style.css');
wp_enqueue_style ('my-style', get_template_directory_uri().'/css/mystyle.css', array('theme-style'));
15 mar 2016 08:22:06
Comentarios

¡Agrega la dependencia del style.css padre para asegurarte de que tu mystyle.css se cargue después del style.css!

Sumit Sumit
15 mar 2016 08:41:34

Entiendo la parte de la ruta, pero ¿qué pasa con la primera parte, la de 'theme-style' y 'my-style'? ¿Puedo poner cualquier cosa ahí? ¿Y cuál es el código completo en functions.php para que esto funcione?

Bruno  Vincent Bruno Vincent
5 feb 2017 11:30:44

@BrunoVincent puedes nombrar el handle como prefieras, siempre y cuando sea único. Consulta la documentación

Fahmi Fahmi
7 feb 2018 10:57:03
5

Normalmente agrego este fragmento de código si quiero añadir otro archivo CSS

<link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/css/my_custom_css.css" type="text/css" media="screen" />

Creo que los creadores de temas quieren conservar en la mayor medida posible el diseño de diseño del tema. Así que un archivo CSS personalizado no afecta mucho. Pienso que es más una cuestión de soporte. Con un archivo CSS personalizado, los creadores pueden ayudar más fácilmente a quienes usan sus temas. Como el style.css original permanece sin modificar, el creador del tema probablemente pueda revisar el archivo CSS personalizado.

13 jul 2012 11:18:53
Comentarios

ya no es la mejor práctica — developer.wordpress.org

iantsch iantsch
15 mar 2016 09:34:50

@iantsch ¿por qué no? ¿qué es mejor? no pude encontrar nada mejor.

Kangarooo Kangarooo
3 jul 2017 22:13:30

@Kangarooo mira la respuesta proporcionada por Fil Joseph: Encola los scripts/estilos que quieras incluir en el encabezado o pie de página

iantsch iantsch
5 jul 2017 12:01:22

Con HTTP/1, es una mejor práctica agrupar todos los estilos básicos en un solo archivo minimizado, en lugar de agregar otro archivo CSS que el navegador necesita descargar y procesar.

Andy Andy
14 feb 2019 23:47:56

en mi caso, esta fue la mejor solución.

730wavy 730wavy
10 oct 2019 04:18:27
0

Activa el tema hijo y añade el siguiente código de ejemplo en el function.php

add_action( 'wp_enqueue_scripts', 'child_enqueue_styles');

function child_enqueue_styles() {

wp_enqueue_style( 'reset-style', get_template_directory_uri() . '/css/reset.css', array());
}
2 nov 2017 09:43:48
0

Mi propuesta sería utilizar temas hijos. Es muy fácil de implementar y todas las modificaciones que realices (incluyendo estilos) están completamente aisladas del tema original.

13 jul 2012 11:57:05
0

Para evitar sobrescribir el CSS principal del tema u otros archivos, SIEMPRE deberías usar un tema hijo en WordPress... no hacerlo solo te causará grandes dolores de cabeza y problemas en el futuro.

https://codex.wordpress.org/Child_Themes

... y con lo fácil que es configurar un tema hijo, no hay razón para no usar uno.

Usar un tema hijo te permitirá sobrescribir cualquier archivo del tema padre que desees, simplemente copiándolo del padre a tu hijo o creando un nuevo archivo con el mismo nombre.

En cuanto al archivo custom.css, hay muchas formas en que los desarrolladores de temas manejan esto... muchos lo hacen simplemente para intentar evitar que los clientes que no quieren usar un tema hijo editen el archivo principal style.css...

De cualquier manera, no deberías preocuparte por eso, siempre y cuando uses un tema hijo no tendrás que preocuparte por actualizar tu tema más adelante y perder tus cambios... acostúmbrate a siempre usar temas hijos, me lo agradecerás más tarde, te lo prometo.

15 mar 2016 18:12:54
2

Si deseas mantener tu html intacto, puedes agregar esto a tu archivo css. Creo que esto es mejor.

@import url("../mycustomstyle.css");

Dependiendo de tu tema también funcionará con temas hijo y padre.

-- Ten en cuenta que el css funciona de manera secuencial (cuando se usa el mismo nivel de identificador, ya utilizado), por lo que lo último en tu archivo sobrescribirá. Así que coloca la importación de tu estilo personalizado al final si deseas sobrescribir elementos.

13 jul 2012 11:41:40
Comentarios

CSS no funciona secuencialmente, funciona basado en la especificidad de la regla; solo recurre a que lo último sobrescribe lo anterior cuando tienes reglas de igual especificidad

srcspider srcspider
4 sept 2013 17:36:50

tienes razón, y a eso me refiero. mi mención de secuencial se refiere al sobrescrito. no a CSS como un todo.

woony woony
24 ene 2014 13:56:27
1

Usa un tema hijo. Es tu mejor opción. De esta manera, si el tema se actualiza, no sobrescribirás las hojas de estilo que has creado.

https://codex.wordpress.org/Child_Themes

Elige este camino, te lo agradecerás más tarde.

15 mar 2016 18:00:44
Comentarios

Eso realmente no responde la pregunta. Tal vez quieras explicar cómo añadir la hoja de estilos en el Tema Hijo.

kaiser kaiser
15 mar 2016 18:48:54
0

La mejor manera es combinar todos los estilos en cola en una sola función y luego llamarlos usando la acción wp_enqueue_scripts. Agrega la función definida en el archivo functions.php de tu tema, debajo de la configuración inicial.

Bloque de Código:

function add_theme_scripts() {
    wp_enqueue_style( 'style', get_template_directory_uri() . '/css/style.css' );
    wp_enqueue_style ( 'custom', get_template_directory_uri () . '/css/custom.css', array( 'style' ) );
}
add_action ( 'wp_enqueue_scripts', 'add_theme_scripts' );

Nota Importante:

El tercer parámetro es el arreglo de dependencias, que indica si esta hoja de estilo depende de otra. En nuestro código anterior, custom.css depende de style.css.

|
Conceptos Básicos Adicionales:
La función wp_enqueue_style() puede tener 5 parámetros:
de esta forma -
wp_enqueue_style( $handle, $src, $deps, $ver, $media );
En el desarrollo real para WordPress, usualmente también agregamos archivos JavaScript/librerías jQuery dentro de esa función de esta manera:

wp_enqueue_script( 'script', get_template_directory_uri() . '/js/script.js', array ( 'jquery' ), 1.1, true);

El 5to parámetro true/false es opcional (el 2do, 3ro y 4to también lo son) pero muy importante, ya que nos permite colocar nuestros scripts en el footer cuando usamos el parámetro booleano como true.

21 jun 2017 11:47:56
0

Ve a Apariencia > Editar CSS desde tu Escritorio de WordPress. Editor CSS en WordPress

Aquí está la pantalla con el editor CSS básico. Editor CSS básico

Ahora pega tu CSS directamente en el texto por defecto. Puedes eliminar el texto por defecto para que sólo aparezca tu CSS en el editor. Luego guarda la hoja de estilos y tu CSS estará activo.

29 jul 2017 08:00:17
0

Si quieres evitar problemas de caché en el navegador web, necesitas incluir la versión del archivo, como se muestra en este ejemplo.

wp_enqueue_style ('theme-style', get_template_directory_uri().'/ruta/al/css/style.css?v=' . filemtime(get_template_directory() . '/ruta/al/css/style.css'));

En este caso, escribo la última fecha de modificación en tiempo unix como un parámetro de consulta.

27 abr 2020 11:06:39