Come rimuovere tutti gli stili per un determinato template di pagina?
So come creare child theme e template di pagina. Ho un child theme di Salient chiamato Salient-Child, e ho un template di pagina chiamato blankPage.php.
Per tutte le pagine che utilizzano questo template, voglio che non venga caricato alcun CSS.
Conosco le funzioni wp_register_script, wp_deregister_script, wp_deregister_style, wp_dequeue_style
, ecc., ma non sono sicuro di dove/come usarle.
Ho provato a inserire alcune di queste funzioni direttamente in blankPage.php stesso, e ho anche provato a modificare functions.php. Ho provato a usare un condizionale con if(is_page_template('blankPage.php')){...}
.
Ogni suggerimento sarebbe apprezzato.
Grazie!

Puoi rimuovere stili specifici e script JavaScript per un template di pagina specifico come mostrato di seguito. Aggiungi il codice nel file functions.php
del tuo tema corrente. Per vedere la lista di tutti i JS e CSS potresti voler usare un plugin come questo: https://wordpress.org/plugins/debug-bar-list-dependencies/
/**
* Rimuove script JavaScript specifici.
*/
function se_remove_script() {
if ( is_page_template( 'blankPage.php' ) ) {
wp_dequeue_script( 'some-js' );
wp_dequeue_script( 'some-other-js' );
}
}
add_action( 'wp_print_scripts', 'se_remove_script', 99 );
/**
* Rimuove fogli di stile specifici.
*/
function se_remove_styles() {
if ( is_page_template( 'blankPage.php' ) ) {
wp_dequeue_style( 'some-style' );
wp_dequeue_style( 'some-other-style' );
}
}
add_action( 'wp_print_styles', 'se_remove_styles', 99 );
Puoi rimuovere tutti gli stili e gli script JavaScript in una sola volta per un template di pagina specifico come mostrato di seguito. Aggiungi il codice nel file functions.php
del tuo tema corrente.
/**
* Rimuove tutti gli script JavaScript.
*/
function se_remove_all_scripts() {
global $wp_scripts;
if ( is_page_template( 'blankPage.php' ) ) {
$wp_scripts->queue = array();
}
}
add_action( 'wp_print_scripts', 'se_remove_all_scripts', 99 );
/**
* Rimuove tutti i fogli di stile.
*/
function se_remove_all_styles() {
global $wp_styles;
if ( is_page_template( 'blankPage.php' ) ) {
$wp_styles->queue = array();
}
}
add_action( 'wp_print_styles', 'se_remove_all_styles', 99 );

Il tuo codice se_remove_all_styles
sembra essere sulla strada giusta per quello che voglio ottenere, ma quando l'ho provato, ha rimosso tutti gli stili da TUTTE le pagine, indipendentemente dal template. Non capisco perché, dato che c'è un'istruzione "If". Hai qualche idea su come debugare il motivo per cui questo accade nel mio caso? Grazie!

Sembra che abbia risolto il problema, ed era così semplice che sono scioccato dal fatto che nessuno lo abbia mai menzionato prima.
Per prima cosa, ho eliminato completamente il mio child theme per poter ricominciare da zero.
Poi, ho utilizzato https://wordpress.org/plugins/one-click-child-theme/ per creare un nuovo child theme di Salient.
Quindi, nel menu Aspetto > Editor, ho visualizzato il file functions.php
e ho notato che aveva già generato automaticamente add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
e function theme_enqueue_styles()
.
Così ho semplicemente racchiuso il contenuto della funzione all'interno di if ( !is_page_template( 'rawHtmlPage.php' ) ) { ...}
.
