Cea mai eficientă metodă de a adăuga fișiere JavaScript în articole și/sau pagini specifice?
Mă întreb care este cea mai eficientă metodă de a adăuga un fișier JavaScript specific pentru un articol și/sau o pagină.
Iată câteva soluții la care m-am gândit:
- Comutarea la modul de editare HTML și inserarea JavaScript-ului acolo (o soluție destul de slabă)
- Câmpuri personalizate (Custom fields) cu JavaScript specific pentru acel articol/pagină în perechile cheie & valoare
- În footer.php, încărcarea fișierelor JavaScript în funcție de pagina pe care te afli (acest lucru duce însă la multe condiții)
Ca o observație, niciunul dintre fișierele JavaScript nu va fi partajat între pagini - va fi specific doar pentru ceea ce vizualizezi în momentul respectiv.
Aveți sugestii?

Cred că cel mai bun echilibru între eficiență și utilizarea metodelor corecte din WordPress pentru adăugarea de JavaScript ar fi adăugarea a ceva de genul acesta în fișierul functions.php al temei tale. De exemplu:
functions.php:
function load_scripts() {
global $post;
if( is_page() || is_single() )
{
switch($post->post_name) // post_name este slug-ul articolului, care este mai consistent pentru potrivire aici
{
case 'home':
wp_enqueue_script('home', get_template_directory_uri() . '/js/home.js', array('jquery'), '', false);
break;
case 'about-page':
wp_enqueue_script('about', get_template_directory_uri() . '/js/about-page.js', array('jquery'), '', true);
break;
case 'some-post':
wp_enqueue_script('somepost', get_template_directory_uri() . '/js/somepost.js', array('jquery'), '1.6', true);
break;
}
}
}
add_action('wp_enqueue_scripts', 'load_scripts');
Această metodă îți oferă control total asupra a ceea ce se încarcă și unde, o locație centralizată în fișierul functions.php al temei tale pentru editarea a ceea ce se încarcă și unde: și, în plus, folosește metodele WordPress pentru a adăuga JavaScript în articole și pagini în siguranță.

Funcție drăguță. Ai dreptate că e util să ai o 'locație centralizată'. Mersi mult.

Cred că asta poate fi optimizat puțin. Practic verifici același lucru cu două structuri switch diferite. Aș combina ambele structuri switch, iar condiția if ar putea fi if (is_page() || is_single())
. Ce părere ai, Ben?

@Ben este functions.php din tema sau din wp-includes? Titlul paginii mele este Access to Home Online și am introdus funcția ta schimbând home
cu Access to Home Online
dar nu funcționează?

@Ciastopiekarz Am actualizat răspunsul meu pentru a arăta mai clar că codul trebuie introdus în fișierul functions.php al temei tale.

Nici o problemă, am reușit să-l fac să funcționeze acum ceva timp

Ceea ce aș face este să plasez în subsolul sau antetul paginii și să folosesc condiționale PHP.
De exemplu:
<?php if (is_page ('pagina-ta')){?>
<script type="text/javascript" src"calea-catre-fisier"></script>
<?php } elseif ( is_page ('alta-pagina')){?>
<script type="text/javascript" src"calea-catre-fisier"></script>
<?php } else { ?>
<script type="text/javascript" src"calea-catre-fisier"></script>
<?php } ?>
În acest fel, nu încarci toate scripturile de fiecare dată când se încarcă pagina, ci doar pe cele de care ai nevoie.
Iată un link către codex-ul WordPress http://codex.wordpress.org/Conditional_Tags
Și dacă ai scripturi speciale care ar putea fi necesare doar pentru anumite articole, folosește câmpuri personalizate.

Mulțumesc Nicole - asta a fost #3. Este o soluție decentă având în vedere că nu voi avea multe pagini... încă o iau în considerare.

Cealaltă metodă testată este cea de mai jos, adăugată direct în pagină din editor și adăugarea de comentarii în interiorul tag-ului script, altfel nu va funcționa.
<script type="text/javascript">
<!--
var a = 5;
alert("Salut lume. Valoarea lui a este: " + a);
-->
</script>
