簡體   English   中英

javascript應該放在Wordpress中,這只是single.php所必需的?

[英]Where should javascript go in Wordpress which is only necessary for single.php?

我想在我正在構建的Wordpress網站的帖子末尾添加社交按鈕(Facebook,Twitter,G +)。 它們只需要顯示在帖子的永久鏈接頁面上(在single.php中編輯)。

所以,我的問題是,我是否應該在header.php中放置必要的腳本(這會將它們放在適當的位置,但即使在沒有必要時它們也會一直加載),或者我應該將它們放在single.php中的某個地方(這意味着它們只是必要時加載,但是位於<body>中間的某個位置?

WordPress有一個名為is_single()函數 ,如果你正在處理單個頁面,它會返回。

只有在查看單個頁面時才可以包含腳本。 你可以做到

<?php if (is_single()) : ?>
  <script src="http://twitter.com/path/to/bla"></script>
<?php endif; ?>

您可能希望在頁面末尾(在關閉body -tag之前)加載腳本,因為它允許在加載腳本之前呈現頁面。

執行此操作的最佳方法是使用wp_enqueue_scripts操作掛鈎。 你應該總是使用它來避免沖突並保持隨之而來的所有好處。

我稍微修改了一個來自doc示例來說明這一點:

<?php
 function my_scripts_method() {
 if(is_single()){
  // register your script location, dependencies and version
  wp_register_script('custom_script',
    get_template_directory_uri() . '/js/custom_script.js',
    array('jquery'),
    '1.0' );
  // enqueue the script
  wp_enqueue_script('custom_script');
 }
 add_action('wp_enqueue_scripts', 'my_scripts_method');
?>

添加在body中間混合的腳本元素沒有任何問題,但是如果要增加加載時間,可能需要將script元素附加到footer.php 在加載dom的其余部分之后調用腳本將阻止加載腳本阻止頁面的其余部分呈現。

如果它是一個非常小的腳本,我認為沒有理由不將它們添加到內聯中,這樣可以很容易地看到它們影響的元素。

你可以將它們放在single.php的底部,但正如你所指出的那樣,這會讓它們出現在頁面中間。

相反,將它們放在header.php中,但內部使用if語句來檢查它們是否需要(即它是單頁),如下所示:

<?php if (is_single()): ?>
     <script>...</script>
<?php endif;?>

如果你把上面的代碼放在內部的php標簽中,第一個<?php和last ?>不會/可能會導致問題。 無論哪種方式,在if語句中,應該是HTML,而不是php才能使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM