WordPressでショートコードを記述すると、なぜだか画面の一番上に表示されてしまうという現象が発生します。
上記のような記述をすると
このように表示されてしまいます。
原因は
ショートコート内で画面出力をしていたためでした。
ショートコード内で、echo や print 等の画面出力を実行してしまうと、この現象が発生します。
上記のコードは、ダメな例です。
解決方法
ショートコード内では、画面出力は実行せずに文字列を返すようにします。
こうすれば、ショートコードは意図した位置に表示されるようになります。