Cómo agregar la versión de style.css en WordPress


12

Cómo agregar una versión de style.cssWordPress como a continuación puedo hacer en Joomla.

<link rel="stylesheet" href="/templates/example/css/style.css?v=1.2">

Sé que style.cssse cargará dinámicamente. por favor, ayúdame a hacer eso.


Aquí hay un plugin wordpress.org/plugins/wp-css-version-history que agregará automáticamente un número de versión en la hoja de estilo. Crea una nueva hoja de estilo que se carga en último lugar. No es necesario borrar el caché para ver los cambios. Utiliza Wordpress integrado en el editor CSS y bloqueo de archivos de usuario para la colaboración del equipo.
Brian Holzberger

Respuestas:


16

El número de versión es un parámetro de wp_enqueue_style().

Según el Codex, aquí están todos los parámetros que wp_enqueue_styleacepta.

wp_enqueue_style( $handle, $src, $deps, $ver, $media );

Entonces, por ejemplo, para cargar una hoja de estilo con un número de versión, haría lo siguiente:

function wpa_90820() {
    wp_enqueue_style('my-styles', get_stylesheet_directory_uri() .'/my-styles.css', array(), '1.0' );       
}

add_action('wp_enqueue_scripts', 'wpa_90820');

cuando hago esto, el viejo style.css también se está cargando. ¿Cómo quitarlo?
Toretto

@VinodDalvi, ¿qué quieres decir con mango? No lo sé, soy nuevo en WordPress, por favor.
Toretto

1
@Toretto O su tema lo está codificando en header.php o su tema también lo está aplicando con un controlador diferente (el primer parámetro). La solución también depende de si está editando directamente las funciones de su tema.php o si ha creado un tema secundario.
helgatheviking

@Toretto, $ handle se muestra en mi respuesta y también se describe en el enlace que proporcioné a la página del Codex para wp_enqueue_stylehacer su tarea.
helgatheviking

1
@Toretto Si su tema está utilizando wp_enqueue_style()para cargar la hoja de estilo en cuestión, entonces su identificador es el primer parámetro. Si su tema está codificando la hoja de estilo en header.php, entonces no tendrá un identificador.
helgatheviking

5

En lugar de cablear la versión, puede ser mejor en algunos casos versionar dinámicamente su hoja de estilo para que cada vez que la cambie, cambie automáticamente y actualice la memoria caché del navegador inmediatamente sin tener que editar sus functions.php una y otra vez.

Puede usar filemtime () para hacer eso. Aquí se explica cómo hacerlo en un estilo secundario que hace referencia al estilo principal

    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), filemtime( get_stylesheet_directory() . '/style.css' )  );

Con el tiempo, he llegado a preferir las versiones de temas, pero es una gran idea usar filemtime () aquí, si uno no tiene una práctica consistente de versiones de temas.
jgangso

3

Si es un desarrollador de temas, es posible que desee forzar la recarga de sus activos cuando envíe una nueva versión.

Entonces el versionado de un tema se realiza en style.css

/*
    Theme Name: Your Theme Name
    Version: 1.0.2
*/

En la parte superior de tu functions.php:

$theme = wp_get_theme();
define('THEME_VERSION', $theme->Version); //gets version written in your style.css

Más tarde, cuando ponga en cola CSS o JS, use THEME_VERSIONcomo cuarto argumento:

function theme_styles()
{
    wp_enqueue_style('main', get_template_directory_uri().'/css/main.css', [], THEME_VERSION, 'all');
}
add_action('wp_enqueue_scripts', 'theme_styles'); 

Saldrá a la página:

.../your-theme-name/css/main.css?ver=1.0.2 

Se vuelve útil cuando tiene más activos de los que preocuparse y no desea cambiarlos manualmente.


2

Puede lograr esto utilizando una de las siguientes formas:

1) Agregue la siguiente etiqueta en el archivo header.php del tema.

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>'?v=1.2" type="text/css" media="all" />

2) Agregue el siguiente código en el archivo functions.php del tema.

function theme_styles()  
{ 
  // Register the style like this for a theme:  
  // (First the unique name for the style (custom-style) then the src, 
  // then dependencies and ver no. and media type)
  wp_enqueue_style( 'style-css', get_template_directory_uri() . '/style.css', array(), '1.2', 'all' );
}
add_action('wp_enqueue_scripts', 'theme_styles');

Para más información ver esta página.


cuando hago esto, el viejo style.css también se está cargando. ¿Cómo quitarlo?
Toretto

¿Cuál es el identificador de old style.css?
Vinod Dalvi

si no puede encontrar el identificador, simplemente copie y pegue todo el URL de style.css aquí ... lo obtendré desde allí ...
Vinod Dalvi

¿O puede decirme cuál es el nombre de su tema o el nombre de la carpeta del tema?
Vinod Dalvi

1
Bienvenido .... :)
Vinod Dalvi

1

La mejor manera de cargar CSS en su tema de WordPress es el siguiente código en su archivo functions.php:

function theme_styles()  
{ 
  global $ver_num; // define global variable for the version number
  $ver_num = mt_rand() // on each call/load of the style the $ver_num will get different value
  wp_enqueue_style( 'style-css', get_template_directory_uri() . '/style.css', array(), $ver_num, 'all' );
}
add_action('wp_enqueue_scripts', 'theme_styles');

Esta es la forma correcta de cargar los estilos en su tema y también es la mejor para fines de puesta en escena / prueba porque cada actualización entregará la versión actualizada del estilo.

Si desea evitar la carga de la 1ra manera, puede usar esta versión corta y colocar la siguiente línea en su archivo header.php y obtendrá el mismo resultado:

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); echo '?ver=' . filemtime( get_stylesheet_directory() . '/style.css'); ?>" type="text/css" media="screen, projection" />

Salud


1

Prueba esto:

Agregue esto a functions.php

function autoVer($filename){
    $url = get_template_directory_uri() . $filename;
    $file = get_template_directory() . $filename;
    if ( file_exists($file)) {
        return $url . '?v=' .md5(date("FLdHis", filectime($file)) . filesize($file));
    }
    clearstatcache();
}

Agregue esto al encabezado o pie de página -> autoVer ('/ js / main.js');


1

Al contrario de los métodos presentados hasta ahora, creo que es mejor usar el número de versión que aparece en la parte superior de su archivo style.css:

// style.css
/**
Theme Name: My theme
...
Version: 1.2.3
...
**/

Para usar la versión del tema en su CSS, agregue lo siguiente a su script functions.php (o equivalente):

<?php

wp_enqueue_style(
    'my-theme',
    get_stylesheet_directory_uri() . '/style.css',
    [],
    wp_get_theme()->get('Version')
);

Esto significa que, después de editar su archivo style.css, todo lo que necesita hacer es cambiar el número de versión en la parte superior del mismo archivo para ver los cambios en la interfaz.

Si examina la sección principal del HTML del tema, verá lo siguiente:

<link rel='stylesheet'
    id='my-theme-css'
    href='... style.css?ver=1.2.3'
    type='text/css'
    media='all'
/>

-1

Esta es una forma bastante directa de obtener el número de versión llamando a la función bloginfo($show) dos veces. Primero para la hoja de estilo y segundo para el número de versión.

<link rel="stylesheet" id="style-css" href="<?php bloginfo('stylesheet_url'); ?>?ver=<?php bloginfo('version'); ?>" type="text/css" media="all" />

Eso es todo al respecto. Espero que ayude o sea útil. Puede revisar todos los parámetros disponibles y ver qué puede generar con la bloginfo()función.

Ignore mi comentario ya que @Ravs ha señalado mi error con respecto al parámetro 'versiones' para la función bloginfo (). De hecho, imprime el número de versión de Wordpress.


Creo que no es la respuesta correcta porque <? Php bloginfo ('versión')?> Le ofrece la versión actual de WordPress, mientras que la pregunta se trata de agregar la versión style.css no la versión de WordPress.
Ravinder Kumar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.