WordPressメモ

WordPressメモ

謎の の連続が出現する件 「wordpress  」でググって見つけたこちらのページによると、2連スペースが に変換されてしまうらしい。 たしかに該当箇所にはスペースの連続があった。しかし が現れないほかの場所にもいたるところにスペースの連続がある。たぶんこれが原因じゃないよなぁ、と思いつつ の連続が出現する箇所のスペースをTABに置き換えてみた。 消えた。一件落着。だけど、ほかにも2連スペースがいたるところにあるけど 出てないよ?なんだこれ。 とはいえWordpressで謎の の連続が現れたら、とりあえず当該箇所のスペースをTABに置き換えてみると解決するかもしれない。

wordpressの編集画面でペーストするとスクロールバーがずれてうざい件

コピペするたび視点がずれて不便極まりない。検索しても思うような記事がヒットせず。いまだ解決できず。 →思案のち、コピペといえば「Image Elevator」怪しいなということで停止してみた。ずれなくなった。Image Elevator超便利なんだけどね。。。なんか設定すれば回避できるかもしれない。

いまのところのざっくりとした理解

wordpressは3つの部分からなっているっぽい。
  • wordpressコア
    • bloginfo()やthe_title()などのテンプレートタグを提供する
    • ブログ情報などを保持してる
  • テーマ
    • wp_head()やwp_footer()などのフックを実際にかけたのはテーマ製作者
  • ユーザーが手を加えた部分
    • テーマ製作者がおいたフックを子テーマのfunctions.phpから使う(テーマ製作者自身も親テーマのfunctions.phpから使う)
正直複雑すぎて全部は把握できそうにない。しかし結局最後はHTMLを吐くということを念頭にコードを追いかければ、完璧には理解できなくてもトライアンドエラーでやりたいことは基本できるのかな、という感じではある。

アクションフック・フィルタフック

  • add_action():アクションフック:追記するときなど
  • add_filter():フィルタフック:変数を書き換える:書き換え後の変数を必ずreturnする
  • do_action():フックされた関数を実行する
  • apply_filters():フックされた関数を実行する:引数は基本Codexで調べるが、載ってなかったらソースを探すとわかる
以下はwp-login.php内でapply_filters関数を呼んでいる部分の一例。

login_body_classにフックすることで$classesを成形することができるんだと思う。$actionは成形できないのかな?渡しているのが参照ならできるのかも。 do_action関数とかapply_filters関数を自分で呼べば、自分でつくったフックを設置できる。実際できた(勉強のために実験する以外で設置することはないだろうけど)。 wp_head()とかwp_footer()とかがテーマから呼ばれているが、それ自体がフックなわけではない。wordpressコアの中で定義されているwp_head()/wp_footer()のなかでdo_action関数が呼ばれているはず(ちょろっと探したがソースファイルがみつからない)。

wp_headとwp_footerの中身

wp_headとwp_footerを定義しているファイルを見つけました。wp-includes/general-template.phpにあります。定義部分を抜粋します。

予想どおりdo_action関数を呼んでいました。というか、呼んでるのみかいw つまり、wp_head/wp_footerはフックを置くことのみが目的の関数だった。じつにシンプル。 ちなみにソースファイルの場所はCodexに書いてあった。すべての関数にソースファイルの項目が用意されているっぽい。親切。

フィルタフックにひっかけるときは必ずreturnする

wordpressコアのソースでは基本この形で書かれているみたい。

なので、functions.phpでフィルタフックにひっかける際、returnを返さないとフィルタ処理が反映されない。return必須(アクションフックにひっかけるときは必要なし)。

あきらかにバグないはずなのにエラーが出るとき

周辺のスペースが悪さしてるパターンけっこうある。タブに置き換えるとエラーがとれるパターンありがち。]]>

シェアする

  • このエントリーをはてなブックマークに追加

フォローする