Подршка » Проблеми » JS Skripta ne radi

  • Pozdrav, nov sam sto se tice wordpressa. Uredjujem drugu WP site i sad zelim da izmenim tj dodam js kod za jednu stranicu (npr da manipulisem DOM pomocu js-a), proucio sam sve metode, napravio sam child theme itd. Skinuo sam plugin za custom JS and CSS, to ne radi. Ubacio sam od nekog coveka ovaj kod u functions.php da mi pokrene kod samo na jednoj stranici: `function load_js_assets() {
    if( is_page( ID ) ) {
    wp_enqueue_script(‘JS FILE NAME’, ‘PATH TO FILE’, array(‘jquery’), “, false);
    }
    }`
    ni to ne radi.. nece obican alert da mi izbaci.. ne znam sta da radim

Посматрање 1 одговора (од укупно 1)
  • Уредник Nemanja Cimbaljevic

    (@ziontrooper)

    Здраво,

    Чини ми се да ту постоји низ проблема.
    Да кренемо од wp_enqueue_script.

    Home


    wp_enqueue_script( string $handle, string $src = '', array $deps = array(), string|bool|null $ver = false, bool $in_footer = false )

    $handle – јединствени назив додатног фајла који укључујеш. нпр (dzimy94_custom_js)
    $src – путања до фајла. Уколико ти је фајл у изведеној теми, можеш га сметстити у {tema}/js/dzimy94_custom.js
    У овом случају ти је путања до фајла
    get_stylesheet_directory() . '/js/dzimy94_custom.js'
    $deps – други фајлови који су потребни да би твоја скрипта радила. У примеру који си послао ослањаш се на системску jquery бибилотеку. Увек је низ array('jquery') или ['jquery']
    $ver – верзија фајла. ово ти је врло корисно да би свака измена била правилно учитана и како неби било проблема са кеширањем
    $in_footer – ово је генерално правило, и препоручујем да користиш true зарад квалитетнијег учитавања стране.

    Уколико примениш ово што сам горе послао, твоја wp_enqueue_script линија би требала да изгледа овако некако:
    wp_enqueue_script( 'dzimy94_custom_js', get_stylesheet_directory() . '/js/dzimy94_custom.js', ['jquery'], '1.0.0', true );

    Е сад, пошто је вордпрес поприлично комплексан, само додавање ове линије у functions.php би направило низ проблема.

    Да би све радило како треба, направићемо функцију:

    function enqueue_dzimy94_custom_js() {
        wp_enqueue_script( 'dzimy94_custom_js', get_stylesheet_directory() . '/js/dzimy94_custom.js', ['jquery'], '1.0.0', true );
    }

    Сада имамо функцију, и твој код неће бити рандоматично извршен, али проблем је што неће бити извршен никада.

    Како би то урадили у вордресу користимо акције и филтере.
    Конкретна акција која нам треба да би овај код био извршен је wp_enqueue_scripts
    И то на следећи начин:
    add_action( 'wp_enqueue_scripts', 'enqueue_dzimy94_custom_js' );

    Комплетан блок кода који би требало да реши твој проблем на крају изгледа овако:

    function enqueue_dzimy94_custom_js() {
        wp_enqueue_script( 'dzimy94_custom_js', get_stylesheet_directory() . '/js/dzimy94_custom.js', ['jquery'], '1.0.0', true );
    }
    
    add_action( 'wp_enqueue_scripts', 'enqueue_dzimy94_custom_js' );

    На овај начин у прве 3 линије дефинишемо шта треба урадити, док на линиј 5 дефинишемо када то треба урадити.

Посматрање 1 одговора (од укупно 1)
  • Тема „JS Skripta ne radi„ је закључана за нове одговоре.