スライドショーを任意のページに表示するWordpress関数を作成しました。この関数はうまく機能し、スライドショーを表示するために任意のテンプレートページに関数呼び出しを追加できます。
サンプル関数呼び出し:add_slideshow($slideshow_id, $gallery_id, $show_navigation_handles);
フッターにjqueryをハードコーディングしました。ただし、メイン関数でjqueryをフッターに追加するために使用したいadd_action('wp_footer','')
のは、各スライドショーの設定が異なる場合があるためです(異なるslideshow_id、gallery_idなど)。
これが私の関数です:
function add_slideshow($slider_id, $gal_id, $show_controls){
//get the slideshow images from database and return HTML - A Bit Long to show here but it WORKS!
//add the required script to footer - JavaScript is added to footer but not $slider_id
add_action('wp_footer', function() {
echo "<script type='text/javascript'>
$(document).ready(function(){
$('#" . $slider_id . "').flexslider();
});
</script>";
});
しかし、PHP変数$slider_id
は、出力されたjavascriptに渡されていないため、フッターの出力は次のようになります。
<script type='text/javascript'>
$(document).ready(function(){
$('#').flexslider();
});
</script>
それが例えばこれであるべきとき:
<script type='text/javascript'>
$(document).ready(function(){
$('#some_id_here').flexslider();
});
</script>
これを正しいID(#actual_slideshow_id)でフッターに手動で追加すると、スライドショーは正常に再生されます。
私はこのサイトを最後の1時間検索して解決策を見つけようとしましたが、特定の問題に適応できるものは見つかりませんでした。
ありがとう、マーク