私が作ったカスタムショートコードは、ウィジェットコンテナの外側のウィジェットの一番上に強制されています。何かアイディアは?これは私のコードです...
function nktmediaplayer_func($atts) {
extract(shortcode_atts(array(
'id' => Rand(1, 900),
'language' => 'en',
'playlist' => 'no',
'media' => '3381',
'height' => '480',
'width' => '640',
'style' => 'single'
), $atts));
?>
<div id="player_<?php echo $id; ?>" class="video_player"><a href="http://www.Adobe.com/products/flashplayer/">Get the Flash Player</a> to see this player.</div>
<script type="text/javascript" src="http://kadampa.org/embed/apps/jwplayer.js"></script>
<script type="text/javascript">
jwplayer("player_<?php echo $id; ?>").setup({
flashplayer: "http://kadampa.org/embed/apps/player.swf",
playlistfile: "http://kadampa.org/<?php echo $language; ?>/api/video/<?php if ( 'playlist' == 'yes' ) echo 'playlist/'; ?><?php echo $media; ?>/desc",
height: "<?php echo $height; ?>",
width: "<?php echo $width; ?>",
config: "http://kadampa.org/embed/config/<?php echo $style; ?>.xml"
});
</script>
<?php
}
add_shortcode('nkt_mediaplayer', 'nktmediaplayer_func', 10);
ショートコードの場合は、ショートコードが表示されている場所に書き出されるように、出力をreturnする必要があります。
HTMLをPHPタグから分割せずにPHP文字列に変換するか、PHPの出力バッファリングメソッドを使用することができます。
ob_start();
?>
<div id="player_<?php echo $id; ?>" class="video_player"><a href="http://www.Adobe.com/products/flashplayer/">Get the Flash Player</a> to see this player.</div>
<script type="text/javascript" src="http://kadampa.org/embed/apps/jwplayer.js"></script>
<script type="text/javascript">
jwplayer("player_<?php echo $id; ?>").setup({
flashplayer: "http://kadampa.org/embed/apps/player.swf",
playlistfile: "http://kadampa.org/<?php echo $language; ?>/api/video/<?php if ( 'playlist' == 'yes' ) echo 'playlist/'; ?><?php echo $media; ?>/desc",
height: "<?php echo $height; ?>",
width: "<?php echo $width; ?>",
config: "http://kadampa.org/embed/config/<?php echo $style; ?>.xml"
});
</script>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;