Alt temadaki komut dosyalarını ve stilleri düzgün bir şekilde nasıl ayıklayabilirsiniz?


11

Projemden birinde bir ana tema ve bir çocuk teması oluşturdum. Ana temamdaki CSS ve JavaScripts'i aşağıdaki gibi sıraladım:

function project_necessary_scripts() {
    //Stylesheets
    wp_register_style( 'bootstrap-css', get_template_directory_uri() .'/css/bootstrap.min.css' );
    wp_register_style( 'bootstrap-map', get_template_directory_uri() .'/css/bootstrap.css.map' );
    wp_register_style( 'project-css', get_stylesheet_uri() );

    wp_enqueue_style( 'bootstrap-css' );
    wp_enqueue_style( 'bootstrap-map' );
    wp_enqueue_style( 'project-css' );

    //JavaScripts
    wp_register_script( 'modernizr-js', get_template_directory_uri() .'/js/modernizr-2.8.3.min.js', array(), '2.8.3' );
    wp_register_script( 'project-js', get_template_directory_uri() .'/js/project.min.js', array('jquery'), '20150401', true );

    wp_enqueue_script( 'modernizr-js' );
    wp_enqueue_script( 'project-js' );
}
add_action( 'wp_enqueue_scripts', 'project_necessary_scripts' );

Şimdi, Çocuk temamda bazı stil sayfalarını ve javascripts'i ayıklamak istiyorum. Bu yüzden aşağıdaki kodu kullandım:

function project_dequeue_unnecessary_scripts() {
    wp_dequeue_style( 'bootstrap-map' );
    wp_dequeue_script( 'modernizr-js' );
    wp_dequeue_script( 'project-js' );
}
add_action( 'wp_print_scripts', 'project_dequeue_unnecessary_scripts' );

Ama aslında bootstrap.css.mapdosya hala enqueuing, ama modernizr-js project-js yüklenmiyor, bu yüzden kısmen çalışıyor. Bunu nasıl çözebilirim?

Hatta eylem önceliklerini denedim:

add_action( 'wp_print_scripts', 'project_dequeue_unnecessary_scripts', 11 );

Yanıtlar:


24

Çözüme çok yakınsınız, çünkü doğru yoldasınız. Sadece biraz düzeltmek için:

Böyle iki eylem kancası vardır:

  1. wp_print_scripts, ve
  2. wp_print_styles

Yani bunu yapmanın yolu şudur: farklı şekilde takmak:

//Dequeue Styles
function project_dequeue_unnecessary_styles() {
    wp_dequeue_style( 'bootstrap-map' );
        wp_deregister_style( 'bootstrap-map' );
}
add_action( 'wp_print_styles', 'project_dequeue_unnecessary_styles' );

//Dequeue JavaScripts
function project_dequeue_unnecessary_scripts() {
    wp_dequeue_script( 'modernizr-js' );
        wp_deregister_script( 'modernizr-js' );
    wp_dequeue_script( 'project-js' );
        wp_deregister_script( 'project-js' );
}
add_action( 'wp_print_scripts', 'project_dequeue_unnecessary_scripts' );

Ve doğru yol, dequeuing'in yanı sıra onları silmektir. Bu yüzden önce onları aldatın ve ardından uygun şekilde silin.


belgelere göre : WordPress 3.3'ten beri, wp_print_scripts stilleri veya komut dosyalarını sıralamak için kullanılmamalıdır. Bunun yerine wp_enqueue_scripts kullanın.
rok

@ user1264304 Biz burada bir şeyleri kandırmıyoruz, bir şeyleri kandırıyoruz.
Mayeenul Islam

1
evet, ama bağlantıya göre , bir kullanmalısınızadd_filter( 'wp_enqueue_scripts', 'project_dequeue_unnecessary_scripts')
rok
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.