¿Cómo cambiar la versión de .css en WordPress?

13

Como sugiere el título, no estoy muy seguro de cómo cambiar la versión de un archivo .css en mi tema. Por el momento, la versión .css es así:

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=4.6.1' type='text/css' media='all' />

¿Hay un script que necesito ejecutar? ¿Dónde debería buscar hacer la versión 4.6.2 como se indica arriba?

Enrique
fuente
¿Cómo va a imprimir este guión?
Nathan Powell

Respuestas:

18

El cuarto argumento, $verpara le wp_enqueue_style()permite configurar la versión:

wp_enqueue_style( string $handle,
                  string $src = false,
                  array $deps = array(),
                  string|bool|null $ver = false,
                  string $media = 'all' );

Por los documentos:

$ ver (string | bool | null) (Opcional) Cadena que especifica el número de versión de la hoja de estilo, si tiene una, que se agrega a la URL como una cadena de consulta para fines de captura de caché. Si la versión se configura como falsa, se agrega automáticamente un número de versión igual a la versión actual instalada de WordPress. Si se establece en nulo, no se agrega ninguna versión. Valor por defecto: false

Dave Romsey
fuente
Gracias por eso, supongo que lo que estoy preguntando es '¿cómo hago eso?', Es decir, '¿cómo ejecuto ese script para generar una nueva versión'? Espero que tenga sentido ...
Henry
¿Actualizaría su pregunta con el código donde wp_enqueue_style()se llama? WordPress maneja el control de versiones automáticamente en función de la explicación de $verpublicado en mi respuesta, por lo que supongo que $ ver está configurado en falso. Si desea cambiarlo, cambie el argumento $ ver a una nueva cadena (no usaría 4.6.2 ya que WordPress ya usa esa convención), pero técnicamente funcionaría.
Dave Romsey
1
Puede sustituir fácilmente cualquier cosa allí. Por ejemplo $ver = time();, haría una nueva versión cada vez que visitara la página, y la versión sería la hora.
Nathan Powell
8

En su mayoría, la wp_enqueue_style()función de uso del tema dentro de su archivo functions.php para agregar una hoja de estilo en el encabezado. Aquí se explica cómo averiguar si su tema hace lo mismo.

Abra su wp-content/themes/YOUR_THEME_NAME/functions.phparchivo y descubra la línea que agrega la hoja de estilo, como:

wp_enqueue_style('main_style',  get_stylesheet_directory_uri() . '/style.css');

O como:

wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri() );

Puede buscar la ID (excepto -cssparte) ... si la ID es: main_style-cssbusque solo main-styleen su archivo functions.php, y probablemente debería encontrar la línea de código que estaba buscando.

Ahora que encontró el código y sabe que su tema agrega esta hoja de estilo al usar el wp_enqueue_style()archivo functions.php. Necesita actualizar este código para la versión.

$style_ver = filemtime( get_stylesheet_directory() . '/style.css' );
wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', $style_ver );

Como puede ver, este código obtiene la última hora modificada del archivo style.css usando la filemtime()función PHP y también convierte el tiempo en una marca de tiempo usando la time()función PHP solo para hacer las cosas limpias.

Si no desea que la versión cambie dinámicamente cada vez, simplemente puede hacer esto:

wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', '1.5' );

Eso es practicamente todo. ¡Paz!

Waqas Jawed
fuente
Atención: debe usar get_stylesheet_directory()dentro filemtime()ya que devolverá una ruta del sistema.
Medio loco el
3

No obtuve mucho de estas respuestas, así que pensé en escribir lo que funcionó para mí. Sé que el códice dice:

$ ver (string | bool | null) (Opcional) Cadena que especifica el número de versión de la hoja de estilo, si tiene una, que se agrega a la URL como una cadena de consulta para fines de captura de caché. Si la versión se configura como falsa, se agrega automáticamente un número de versión igual a la versión actual instalada de WordPress. Si se establece en nulo, no se agrega ninguna versión. Valor predeterminado: falso

Pero es muy críptico en cuanto a cómo funciona realmente. No pude obtener un número de versión wp_enqueue_stylepara activar un parámetro de consulta como ?ver=1.2.3en mi hoja de estilo. Sin embargo, establecerlo en true permite la versión declarada de cache bustla hoja de estilo a la hoja de estilo. (sigue leyendo)

Dentro de su style.css debe nombrar su tema. Esto es requerido por WP. Sin embargo, otras opciones como versiones lo que la versión booleana de wp_enqueue_style también da referencia.

/******************************************************************
Site Name: MySite.com
Author: @BenRacicot
Version: 4.0 // <- wp_enqueue_style's version number
Stylesheet: Main Stylesheet
******************************************************************/

Ahora cuando cambio eso para Version: 4.1obtenerstyle.css?cache-bust=0.24135995238933283

Ben Racicot
fuente
2

Simplemente puede usar time()en un momento de estilo en cola o script como este ...

Sin usar la wp_enqueue_style()función wordpress

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=<?php echo time(); ?>' type='text/css' media='all' />

Usando la wp_enqueue_style()función

wp_enqueue_style('style_sheet_name', get_stylesheet_directory_uri() . '/custom_style.css', '', time());

O

wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());
Sr. HK
fuente
1
No recomendaría esto, estoy bastante seguro de que derrotará a la versión de almacenamiento en caché todos juntos.
Fabian von Ellerts