Atribuir un número de versión a la hoja de estilo principal de un tema secundario

8

En header.php, me gusta atribuir un número de versión a la hoja de estilo para que el navegador se vea obligado a actualizarlo. Pero cuando se trabaja con un tema secundario, su hoja de estilo no se llama explícitamente, sino que WordPress lo busca automáticamente. Entonces, ¿cómo o dónde atribuir un número de versión a la hoja de estilo del tema secundario?

    
pregunta drake035 21.05.2014 - 19:23

5 respuestas

5

Puede actualizar la versión en la propia hoja de estilo de temas secundarios ...

/*
 Theme Name:   Twenty Fourteen Child
 Theme URI:    http://example.com/twenty-fourteen-child/
 Description:  Twenty Fourteen Child Theme
 Author:       John Doe
 Author URI:   http://example.com
 Template:     twentyfourteen
 Version:      1.1.2 <---- Update here
*/
    
respondido por el Matt Royal 28.05.2014 - 13:49
9

Creo que la mejor manera de hacer esto es dejar la hoja de estilo del tema secundario (style.css) vacía con solo los comentarios necesarios (como el nombre del tema, la descripción, etc.) Wordpress puede reconocer su tema y luego crear otro archivo css. en su carpeta-nombre-tema / css / main.css

Después de eso en function.php puedes tener una nueva "versión" cada vez que cambies tu archivo:

function my_scripts_and_styles(){

$cache_buster = date("YmdHi", filemtime( get_stylesheet_directory() . '/css/main.css'));
wp_enqueue_style( 'main', get_stylesheet_directory_uri() . '/css/main.css', array(), $cache_buster, 'all' );

}

add_action( 'wp_enqueue_scripts', 'my_scripts_and_styles', 1);

La lógica:

Cada vez que guarde el archivo, se modifica la hora de modificación del archivo. La nueva hora se pasa a la función de fecha para convertir la hora (filemtime devuelve un número entero que representa la hora) al formato de fecha para convertirla en una cadena en el formato que desee. En nuestro ejemplo, el tiempo se está formateando con una precisión de minutos. Puede cambiarlo para seguir incluso el segundo, es decir, "YmdHis" . Después de que la nueva hora de modificación del archivo se pase como una nueva versión a wp_enqueue_style .

Referencia:

enlace

enlace

    
respondido por el Laxmana 01.06.2014 - 13:24
4

Lo que debe hacer es desregistrar el estilo principal por el identificador y luego volver a registrarse con su número de versión. En este caso, el identificador es style-css .

Puede determinar el identificador que necesita usar mirando el enlace de la hoja de estilo renderizada:

<link rel='stylesheet' id='style-css-css'  href='http://site-url/wp-content/themes/child-theme/style.css?ver=4.6.1' type='text/css' media='all' />

Aquí el ID es style-css-css , lo que significa que nuestro identificador es style-css

Ponga esto en la function.php de su tema hijo:

function wpse_145141_change_style_version(){
    // First de-register the main stylesheet
    wp_deregister_style( 'style-css' );
    // Then add it again, using your custom version number
    wp_register_style( 'style-css', get_stylesheet_uri(), array(), "VERSION_NUMBER" );
    //finally enqueue it again
    wp_enqueue_style( 'style-css');
}

add_action( 'wp_enqueue_scripts', 'wpse_145141_change_style_version');
    
respondido por el kraftner 28.05.2014 - 10:49
0

Creo que si utilizas el editor de temas de Wordpress para editar la hoja de estilo de tu hijo, agrega automáticamente un nuevo número de versión cada vez que guardas el archivo.

    
respondido por el selfagency 21.05.2014 - 19:44
0

En lugar de usar el style.css predeterminado, normalmente uso wp_enqueue_style en las funciones del tema hijo.php u otro php incluido expediente. Por lo tanto, aún tendrías style.css en el tema hijo con todos los detalles del tema hijo, pero luego puedes tener un archivo css separado en el tema hijo para el estilo del tema hijo real (generalmente lo pongo en un activo / css directorio dentro del tema hijo). Esto también le permitiría establecer la versión CSS con el 4to parámetro. Por ejemplo:

function theme_name_child_scripts() {
    wp_enqueue_style( 'style-name', get_stylesheet_directory_uri() . '/assets/css/child-style.css', array(), '1.0.0', 'screen');
}

add_action( 'wp_enqueue_scripts', 'theme_name_child_scripts' );

Puede agregar una prioridad a la acción si no se está cargando en el orden correcto o si trabaja con el parámetro de dependencia en wp_enqueue_style anterior:

add_action( 'wp_enqueue_scripts', 'theme_name_child_scripts', 20 );
    
respondido por el Bjorn 27.05.2014 - 19:30

Lea otras preguntas en las etiquetas