it-swarm.com.de

Wie werden Skripte und Stile in untergeordneten Designs ordnungsgemäß in die Warteschlange gestellt?

Ich habe in einem meiner Projekte ein Eltern- und ein Kinderthema erstellt. Ich habe CSS und JavaScripts in meinem übergeordneten Thema wie folgt in die Warteschlange gestellt:

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' );

Nun möchte ich in meinem Child-Thema einige Stylesheets und Javascripts aus der Warteschlange entfernen. Also habe ich folgenden Code benutzt:

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' );

Tatsächlich steht die bootstrap.css.map-Datei noch in der Warteschlange, aber das modernizr-js-Projekt-js wird nicht geladen, sodass es teilweise funktioniert. Wie kann ich das lösen?

Ich habe sogar versucht, Prioritäten zu setzen:

add_action( 'wp_print_scripts', 'project_dequeue_unnecessary_scripts', 11 );
9
Mayeenul Islam

Sie sind der Lösung sehr nahe, weil Sie auf dem richtigen Weg sind. Nur um ein bisschen zu optimieren:

Es gibt zwei solche Aktionshaken:

  1. wp_print_scripts , und
  2. wp_print_styles

So können Sie es machen: Haken Sie sie anders ein:

//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' );

Und der richtige Weg ist es, sie abzumelden, neben dem Ausreihen. Nehmen Sie sie also zuerst aus der Warteschlange und melden Sie sie dann entsprechend ab.

20
Mayeenul Islam