[英]How to add custom javascript code in the Wordpress file “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操作掛鈎。 你應該總是使用它來避免沖突並保持隨之而來的所有好處。
<?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.