it-swarm.com.de

jQuery-Skript nicht im untergeordneten Thema in die Warteschlange gestellt

Ich brauche hier einen kleinen Einblick mit dem folgenden Problem? Ich habe ein untergeordnetes Thema namens "test_child" erstellt, das ich folgendermaßen erweitern möchte:

Dies ist die Datei test_child/functions.php:

<?php

function load_flaticon() {
    wp_enqueue_script(
            'flaticon', get_stylesheet_directory_uri() . '/js/flaticon.js', array('jquery')
    );
}
add_action( 'wp_enqueue_script', 'load_flaticon' );

?>

Dann ist dies die Datei test_child/js/flaticon.js:

jQuery(document).ready(function($) {
    $("a[href$='.pdf']").addClass('flaticon-pdf19');
    $("a[href$='.ppt']").addClass('flaticon-ppt');
    $("a[href$='.pptx']").addClass('flaticon-pptx2');
    $("a[href$='.doc']").addClass('flaticon-doc2'); 
    $("a[href$='.docx']").addClass('flaticon-docx'); 
    $("a[href$='.xls']").addClass('flaticon-xls1');
    $("a[href$='.xlsx']").addClass('flaticon-xlsx');  
});
// by the way have already tried the " .ready(function() { " version

In der test_child/header.php sehe ich irgendwo die Zeile:

<!-- wp_head() -->
<?php wp_head();?>

Ich glaube, ich mache es "nach Vorschrift" (und ich habe andere ähnliche Fragen studiert), aber andererseits muss es etwas geben, das ich vermisse, weil das Drehbuch doch nicht in die Warteschlange gestellt ist ...

Könnten Sie bitte ein frisches Paar Augen verleihen?

4
Mpampirina

Die Frage, die ich ansprechen möchte, besteht aus zwei Teilen:

  1. Es hat nicht funktioniert, da für die Aktion eine Pluralform verwendet wird: wp_enqueue_scripts, nicht wp_enqueue_script. Ich denke, das ist passiert, weil die Funktion, die Sie hier verwenden müssen - wp_enqueue_script() - tut einen Singular verwendet.

  2. Sie sollten die Funktion wp_enqueue_script() nicht mit so vielen Parametern verwenden.

    Registriere deine Skripte früh, stelle sie spät ein.

    function register_flaticon() {
        wp_register_script(
            'flaticon',
            get_stylesheet_directory_uri() . '/js/flaticon.js',
            array('jquery')
        );
    }
    function enqueue_flaticon() {
        wp_enqueue_script( 'flaticon' );
    }
    
    add_action( 'wp_loaded',          'register_flaticon' );
    add_action( 'wp_enqueue_scripts', 'enqueue_flaticon' );
    

    Der Grund dafür ist Flexibilität. Es gibt vier Warteschlangenaktionen:

    • wp_enqueue_scripts
    • admin_enqueue_scripts
    • customize_controls_enqueue_scripts
    • login_enqueue_scripts

    Wenn Sie Ihr Skript früh genug registrieren, können Sie oder eine andere Person es bei einer der anderen Aktionen in die Warteschlange stellen, und Kollisionen können vermieden werden , da WordPress ein Skript nicht zweimal mit demselben Handle registriert. Siehe auch diesen Thread über die Namenskonvention für jQuery-Addons .

3
fuxia

get_stylesheet_directory_uri() öffnet das aktuelle untergeordnete Designverzeichnis uri, daher wird die angegebene Datei nicht abgerufen, da es sich um ein untergeordnetes Design handelt

Um die Datei abzurufen, verwenden Sie get_template_directory_uri(), um den Verzeichnispfad abzurufen. Dadurch wird das Vorlagenverzeichnis abgerufen, das Sie in style.css angegeben haben, d. H

Template:your_parent_theme_folder_name
0
Prashant Jain