Cara paling efisien untuk menambahkan file javascript ke posting dan / atau halaman tertentu?

17

Saya bertanya-tanya apa metode yang paling efisien untuk menambahkan file javascript khusus untuk posting dan / atau halaman.

Berikut adalah beberapa solusi yang saya buat:

  • Beralih ke tampilan pengeditan HTML dan poskan JavaScript Anda di sana (solusi yang sangat buruk)
  • Bidang khusus dengan JavaScript khusus untuk posting / halaman itu di pasangan kunci & nilai
  • Di footer.php, muat file JavaScript tergantung pada halaman mana Anda berada (ini mengarah ke banyak persyaratan)

Di samping catatan, tidak ada file JavaScript yang akan dibagikan di antara halaman - itu benar-benar akan spesifik untuk apa yang sedang Anda lihat.

Adakah pikiran?

mousesports
sumber
Kotak meta / bidang khusus adalah pilihan terbaik Anda
Miha Rekar
Bagaimana Anda mendefinisikan efisiensi?
fuxia
1
Dengan 'efisien' maksud saya adalah jumlah redundansi kode paling sedikit dan cara paling efektif untuk melakukan hal ini secara khusus untuk satu posting / halaman.
mousesports

Jawaban:

30

Saya pikir keseimbangan terbaik antara efisiensi, dan menggunakan metode wordpress yang tepat untuk menambahkan javascript akan menambahkan sesuatu di sepanjang baris ini ke file functions.php tema Anda. Sebagai contoh:

functions.php:

function load_scripts() {
    global $post;

    if( is_page() || is_single() )
    {
        switch($post->post_name) // post_name is the post slug which is more consistent for matching to here
        {
            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');

Ini memberi Anda kontrol penuh atas apa yang dimuat di mana, lokasi terpusat di file functions.php tema Anda untuk mengedit apa yang dimuat di mana: dan, cara ini menggunakan metode wordpress untuk menambahkan javascript ke posting dan halaman Anda dengan aman .

Ben HartLenn
sumber
1
Fungsi kecil yang menyenangkan. Anda benar tentang itu berguna untuk memiliki 'lokasi terpusat'. Terima kasih banyak.
mousesports
3
Saya kira ini bisa dibersihkan sedikit. Anda pada dasarnya memeriksa hal yang sama dengan dua switch-case yang berbeda. Saya akan mengatakan menggabungkan kedua switch-case, dan kondisi jika bisa if (is_page() || is_single()). Bagaimana menurutmu Ben?
mousesports
Kedengarannya seperti peningkatan bagi saya. Bagus
Ben HartLenn
@ Ben apakah itu functions.php satu tema di dalam atau di wp-include ? judul halaman saya adalah Akses ke Online Home dan saya telah menempatkan changeing fungsi Anda homeuntuk Access to Home Onlinetetapi tidak bekerja?
Ciasto piekarz
@Ciastopiekarz Saya telah memperbarui jawaban saya untuk lebih baik menunjukkan bahwa kode masuk dalam file functions.php tema Anda.
Ben HartLenn
2

Apa yang akan saya lakukan adalah tempat di footer atau header dan menggunakan persyaratan php.

Sebagai contoh:

<?php if (is_page ('your-page')){?>

  <script type="text/javascript" src"the file path"></script>

<?php } elseif ( is_page ('another')){?>

  <script type="text/javascript" src"the file path"></script>

<?php } else { ?>

  <script type="text/javascript" src"the file path"></script>

<?php } ?>

Dengan cara ini Anda tidak memanggil semua skrip setiap saat pada setiap halaman memuat dan Anda hanya memanggil yang Anda butuhkan.

Berikut ini tautan ke kodeks Wordpress http://codex.wordpress.org/Conditional_Tags

Dan jika Anda memiliki skrip khusus yang mungkin hanya perlu dipanggil berdasarkan per posting gunakan bidang khusus.

Nicole
sumber
Terima kasih, Nicole - ini # 3. Ini solusi yang layak mengingat saya tidak akan memiliki banyak halaman ... masih mempertimbangkannya.
mousesports
Yang telah di atas dapat digunakan dengan berbagai item dari kodeks wordpress seperti: is_categories, is_single (untuk posting), is_post_type ... Saya menambahkan tautan ke daftar bersyarat wordpress dalam jawaban saya di atas.
Nicole
0

Cara lain yang diuji adalah di bawah ini tambahkan halaman langsung dari editor dan jangan menambahkan komentar dengan tag script selain itu tidak akan berfungsi.

<script type="text/javascript">
<!--
var a = 5;
alert("hello world. The value of a is: " + a);
-->
</script>
Dev G
sumber