Cum să elimini toate stilurile pentru un anumit șablon de pagină?

10 oct. 2015, 04:50:42
Vizualizări: 17.9K
Voturi: 5

Știu cum să creez teme copil și șabloane de pagini. Am o temă copil a Salient numită Salient-Child și un șablon de pagină numit blankPage.php.

Pentru toate paginile care folosesc acest șablon, doresc să nu se încarce niciun fel de CSS.

Cunosc funcțiile wp_register_script, wp_deregister_script, wp_deregister_style, wp_dequeue_style, etc., dar nu sunt sigur unde/cum să le folosesc.

Am încercat să scriu unele dintre aceste funcții direct în blankPage.php și am încercat și să modific functions.php. Am încercat să folosesc o condiție cu if(is_page_template('blankPage.php')){...}.

Orice îndrumare ar fi apreciată.

Mulțumesc!

0
Toate răspunsurile la întrebare 2
2
13

Puteți elimina stiluri specifice și scripturi Java pentru un șablon de pagină specific, ca în exemplul de mai jos. Adăugați codul în fișierul functions.php al temei actuale. Pentru a vedea lista tuturor fișierelor JS și CSS, puteți utiliza un plugin precum acesta: https://wordpress.org/plugins/debug-bar-list-dependencies/

/**
 * Elimină scripturi Java specifice.
 */
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 );

/**
 * Elimină fișiere de stiluri specifice.
 */
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 );

Puteți elimina toate stilurile și scripturile Java dintr-o singură mișcare pentru un șablon de pagină specific, ca în exemplul de mai jos. Adăugați codul în fișierul functions.php al temei actuale.

/**
 * Elimină toate scripturile Java.
 */
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 );

/**
 * Elimină toate fișierele de stiluri.
 */
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 );
10 oct. 2015 05:33:17
Comentarii

Funcția ta se_remove_all_styles pare să fie pe drumul cel bun pentru ceea ce îmi doresc, dar când am încercat-o, a eliminat toate stilurile de pe TOATE paginile, indiferent de template. Nu înțeleg de ce, având în vedere că există o condiție "If". Ai vreo idee cum aș putea depana de ce se întâmplă asta în cazul meu? Mulțumesc!

Ryan Ryan
12 oct. 2015 01:40:59

Furnizezi calea corectă către fișierul template în interiorul condiției if?

Subharanjan Subharanjan
12 oct. 2015 04:53:19
0

Pare că am rezolvat problema, iar soluția a fost atât de simplă încât sunt șocat că nu am văzut-o menționată de nimeni până acum.

În primul rând, am șters întregul fișier de temă copil (child theme) pentru a putea începe de la zero.

Apoi, am folosit https://wordpress.org/plugins/one-click-child-theme/ pentru a crea o nouă temă copil pentru Salient.

Apoi, în meniul Apariție > Editor, am vizualizat fișierul functions.php și am observat că acesta a generat automat add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); și function theme_enqueue_styles() pentru mine.

Așadar, pur și simplu am încapsulat conținutul funcției într-un if ( !is_page_template( 'rawHtmlPage.php' ) ) { ...}.

12 oct. 2015 02:11:34