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?


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 .


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.


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>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.