2011-10-17 7 views
0

私はビルドしているWordpressサイトのポストの最後にソーシャルボタン(Facebook、Twitter、G +)を追加したいと思います。それらは、postのpermalinkページ(single.phpで編集されています)に表示する必要があります。JavaScriptはsingle.phpにのみ必要なWordpressにはどこに行きますか?

私は必要なスクリプトをheader.phpに入れておく必要があります(これはそれらを配置しますが、必要でなくてもロードされます)。または、それらをsingle.phpのどこかに置く必要があります。必要なときにのみロードされますが、<body>の真ん中に配置されていることを意味します)。

+0

移動しますか? –

答えて

1

WordPressにはfunction called is_single()があります。これは、現在1つのページを扱っている場合に返されます。

単一のページが表示されている場合にのみスクリプトを含めることができます。あなたはそれがページがスクリプトをロードする前にレンダリングすることができますとしてあなたが(右の終値body -tag前の)ページの最後にスクリプトをロードすることもできます

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

でそれを行うことができます。

+0

このようなものが欲しいと思っていた、ありがとう! –

0

bodyの真ん中にスクリプト要素を追加しても何も問題はありませんが、読み込み時間を改善したい場合はfooter.phpscript要素を追加するとよいでしょう。ドミノの残りの部分がロードされた後にスクリプトを呼び出すと、残りのページがレンダリングされないようにスクリプトがロードされなくなります。

非常に小さなスクリプトであれば、インラインで追加するだけの理由はなく、影響を受ける要素を確認するのは簡単です。

0

あなたはsingle.phpの一番下にそれらを入れることができますが、あなたが指摘しているように、これはページの中央に表示されます。

if文の代わりに、(すなわち、それは単一のページで)それらが必要とされていることを確認するためにあなたのheader.phpの中でそれらを置くが、インサイダーAN、そうのような:

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

最初<?phpと最後?>あなたが上記のコードをPHP内部タグに入れれば、問題は起こりません。どちらの方法でも、if文の内部では、HTMLでなければなりません。

1

これを実行する最善の方法は、wp_enqueue_scriptsアクションフックを使用することです。矛盾を避け、それに伴うすべての良さを保つためには、常にこれを使うべきです。

私は少しこの説明するためにexample from the docを修正:http://wordpress.stackexchange.com/へ

<?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'); 
?> 
関連する問題