ライブプレビューはwp_footer()が無いとまともに動かない件
こんにちは。継続の錬金術士なおキーヌです。
ブログ毎日更新は237日目になります。
前回ライブプレビューでトップページ以外は表示されなくて、
リンクを踏むと適用されているテーマになってしまう問題が解決しました。
結論から先にネタバレしておくと
どうやらphp側に「php wp_footer();」が記述されていないと正常に動かないようです。
それではWordPress自作テーマ講座第7回目を始めましょう。
- wp_footer()をindex.phpとsingle.phpに書き込もう
- wp_footer()は一体ナニモノなのだろうか
- wp_footer()が無く動かない代表的なプラグイン「contact form 7」
- WordPress自作テーマ講座第7回まとめ
wp_footer()をindex.phpに書き込もう
wp_head()はheadタグの中に居れましたが、wp_footerはbodyの閉めタグて前においてOKです。
index.phpのみに記述しているだけだと、ライブプレビューで謎のロードだけ入って画面が切り替わらずそのままになります。
なんかおかしいなと思ったらsingle.phpに記述するのを忘れていたのが原因でした。
というか全phpにwp_footer()は記述すべきです。
毎回全部のファイルに記述するのが面倒なので「footer.php」を作り、
各記事で「get_footer()」を呼び出してやれば1つの記事の変更だけで済みます。
footer.phpはサイトのフッターやスクリプトのコードなんかを書いておくと全ページに表示されるので便利です。
wp_footer()は一体ナニモノなのだろうか
今回はライブプレビューを解決のためにwp_footer()を入れました。
実はこの「wp_footer()」意外と曲者でコイツを呼び出さなければ色々なプラグインが動かなかったり
今回のライブプレビューのようにWordpressの元々の機能が動かなかったりします。
しかし余計なコードも沢山出力するので、個人的にはあまり呼び出したくないコードです。
そこで役に立つのがfunction.phpです!
function.phpはwp_headで出力されるWordpressのバージョン情報を制御したと思います。
同じくしてwp_footerで出力されるタグもfunction.phpで制御できます。
今はまだ特に邪魔されているような状態ではないので、
作っている内に邪魔だなこれってのが出てきた時に説明します。
wp_footer()が無く動かない代表的なプラグイン「contact form 7」
最後に余談ですが、wp_footer()が無いと正常に動かなくなるのが
業務でもよく使われるお問い合わせを簡単に実装できる「contact form 7」
wp_footerで大切なタグを表示するため、特別な理由が無い限り必ず記述しないといけないようです。
かくいう私もcontactform7に散々悩まされ続けました。
便利であるがゆえどんどん自社用にカスタマイズしたくなるのですが、
知識が無いとどこを弄ったらいいやらさっぱりな状態です。
幸い、利用者がめちゃくちゃ多いプラグインなので
(動かない問題) contactform7
でググれば大抵の解決法が出てくるので初心者にも安心です。
しかし業務で使うとなると、なんかしらの機能を追加したりする場合もあるので
その時にメールフォームの仕組みを知らないと混乱になって最悪サイトからの問い合わせが途絶えてしまいます。
そうならない為にも開発は基本的に別のところでやりましょう。
私はWordpress覚えたての頃、まだエンジニア的な知識は殆どなかったので
業務でメイン稼働しているサイトでメンテナンスをするというとてつもないアホな仕事をしていました。
案の定、画面が真っ白になったり冷や汗ダラダラ状態でした。
今思えばなんであんな無謀なことをしたのかわかりません(笑)
お陰で今では色々知識が付きました。
皆様はくれぐれも職場のメインで動いているWordpressでメンテナンスなんかしないようにしてください。
やるならローカルで構築したWordpressでやりましょう。
WordPress自作テーマ講座第7回まとめ
今回はライブプレビューの不具合をwp_footerを書き込むことで直せました。
ちょっと短いですが、完全0からの状態で自作テーマを作る上で引っかかりそうな場所です。
書籍なんかを買ったらちゃんと説明されているのかもしれませんが、
やはり問題にぶち当たってから問題を解決するだけで記憶にかなり残ります。
なのでプログラミングに関しては教本に沿ってやるよりも
問題にぶちあたってから調べたほうが吸収率は段違いに変わります。
次回はウィジェットを作っていきましょう。
実は私もまともにウィジェットを作ったことが無くて楽しみです。
個人的にはウィジェット機能は使用せずに全部テーマに記述しています。
というのも、一々管理画面に行って修正するのが面倒くさいからですね。
慣れてくるとソースコードで一元管理が基本になってきます。
もし素人にテーマを配布する場合はちゃんとウィジェット機能を使えるようにするべきなので、
私もいずれ有料テーマを販売してみたいので今のうちに勉強しておこうと思います。
それでは。