コンテンツ (ショートコードとして使用) を投稿に挿入するプラグインを作成したとします。各投稿のコードをページの下部にプッシュしようとしています。
これは問題なく動作しますが、同じショートコードを使用する複数の投稿があるアーカイブ ページにいる場合、関数名が重複し、フッター コード (activate_flex_slider) が 1 回しか出力されないため、明らかな競合が発生します。
<?php
function your_function() {
echo '<p>This is inserted at the bottom</p>';
}
add_action('wp_footer', 'your_function');
?>
私がやろうとしているのは、それぞれの ID を指す複数の jQuery インスタンスが存在するように、フッター スクリプトを出力することです...
<?php
function flex_slider() {
$output ='<ul class="flexslider"><li>Slide Content</li></ul>';
return $output;
}
function activate_flex_slider(){
?>
<script>
( function ($) {
$(window).load(function(){
//different number will be prepended to ID (matches post ID #)
$('#carousel-<?php echo $post->ID ?>').flexslider();
});
})(jQuery);
</script>
<?php
}
// Hook into footer so slider becomes active after page loads
add_action('wp_footer','activate_flex_slider');
// Create the Shortcode
add_shortcode('flex_slider', 'flex_slider');
?>