[USO]WordPress 検定試験 – 解答編

さめないうちに・・・。 ということで、早速解答編であります。 わざわざトラックバック解答いただきました Masayan さんありがとうございました!! 🙂

[USO] 検定試験模範解答

先ごろ行われました WordPress 検定試験ですが、皆さん受験されましたでしょうか。合格発表までの間に答合わせをして合否を予想しておきましょう。なるべく、ショックが少ないように・・・。

でははりきっていきましょう~。

Q1.

プラグインファイルの格納場所を WordPress のルートディレクトリからのパスで答えなさい。 そらで書いてね。

答えは、

wp-content/plugins

wp-contents/plugin とか wp-contents/plugins は不正解。 😛 まぁまぁそらで、はおいておいて WP つかうなら基本事項でありました。

次~。

Q2.

テーマファイル内で CSS や JS、イメージファイルをリンクする場合に使われる、テーマディレクトリまでのパスを自動で生成してくれるテンプレートタグは何? リファレンスみていいです。。

答えは、これは複数解答ありますね~。 いづれか。

bloginfo(‘template_directory’);

bloginfo(‘template_url’);

ほかにも同一動作できるオプションありそうですが、基本的にはこの2つだと思います。 ちなみに、CSS ファイルまでのパスは

bloginfo(‘stylesheet_url);

という専用のオプションで style.css まで含めて生成してくれます。

WordPress のテーマは、wp-content/themes/[テーマ名]/ に格納されますが、ブラウザからみればアクセスはそこのパスではなくて別のディレクトリ。 たとえば、このサイトだと、

https://another.maple4ever.net/

でテーマがみえます。 / ルート。 /blog/ とか /wp/ の方もいるでしょう。

たとえば、テーマファイルの中で相対パスをつかってしまうと、ブラウザは単純にみえているパスからの相対でたどりますので、wp-content/themes/[テーマ名]/ にはいきつくことができずリンクがきれてしまいます。

なので、画像リンクとか JS とかはテーマファイルまでの絶対パスでかかねばなりませんが、普通に書いてしまうと [テーマ名] 部分が可変にできず調子がわるい。 ってことで準備されているのが、template_directory 系のオプションです。 テーマとかでパスを指定するときは、こいつに URL をつくってもらえばOKです。

ただし、style.css ファイルの"中"でのパスの指定は相対でOKです。 なぜなら、style.css 自体はブラウザに既に読まれていますので、パスがちゃんと決定しているからです。

WordPress のテーマ作成でひっかかりそうなのは、このへんですね。 🙂

では、次。

Q3.

管理画面からパーマリンクを設定してみてから、ブログのサイト内リンクをクリックしてみたらあちこちで 404 not found とでてしまいました。 この理由で考えられるのは、 .htaccess ファイルが生成できなかった以外で、もうひとつは何?

環境問題。

WP のパーマリンクは、Apache の mod_rewrite という拡張モジュールを設定する形で実装されています。 この設定は .htaccess というファイルにかかれます。

答えは、

Apache が mod_rewiter モジュールを読み込んでない。

でした。

拡張モジュールだけに、mod_rewrite が入ってないサーバもたまにあります。 レンタルサーバだと手出しできない世界なので、この場合は管理者さんにお願いするか、あきらめるかということになります。

XAMPP とかも標準で mod_rewrite をよんでくれていませんので気をつけましょう。 モジュール自体ははいっていて、httpd.conf に mod_rewrite 設定がコメントアウトで存在するので、はずして再起動でいけます 🙂

次々。

Q4.

WordPress のマイナーアップグレードがありました。その差分ファイルは、wp-atom.php、template-loader.php、wp-db.php の3つでした。 このバージョンアップは matt が何か間違いをやらかしています。 なんでしょう?

ひらめき問題。 Masayan さん、さすがです。

答えは、

version.php が入ってない。

WP はバージョンナンバーが version.php に入っています。 ってことで、バージョンアップの場合はこれが必ず書き換わります。 ない場合は、matt が忘れたってことで。 差分ファイルでアップロードした場合はこれを確認してみるといいかもしれません。

つぎぎ。

Q5.

WordPress の管理画面系以外のプログラムエントリ(スタート)ポイントは、index.php と RSS フィード系と、あとひとつは何系?

答えは、

秋葉系。

うそです。

PHP はアクセスしたファイルから処理がはじまるってことで、これをエントリポイントとかいいますが、この種類を問う問題。 ほかにもありそうな気がしてきましたが、想定解答は、

API 系 (xmlrpc.php, wp-app.php)

XMLRPC と Atom Publishing、総称して API 系(銘銘おでさん)。 管理画面をつかわずに外部から投稿するインターフェースでした。

つぎぎぎ。

Q6.

index.php に入っている、define(’WP_USE_THEMES’, true); って何のためにある?

実は Q5 とちょっと関連する問題。 特に解答は決めてなかったのですが、

この定数が true じゃないと WordPress は HTML をださない。

テーマの HTML を出さずに WP の機能を使いたいときには、index.php をとばして

require_once(‘./wp-config.php’);

するとテーマ表示せずに WP の機能が使えるのでそういうときに使う。

くらいでしょうか。 true じゃない状態でアクセスすると真っ白な画面がでてきます。

要は RSS とかの"テーマはださないけど他のWPに関する処理したいファイル"は WP_USE_THEMES が true じゃない状態でプログラムをかけば OK です。

たとえば、wp-tegaki とかもこの機能をつかって、独自に WP の機能だけつかって、画像をだしています。 AJAX のエントリポイントとかもそうですね。

わざわざ、wp-config.php をテキストファイル読みして、DB の接続先取得して独自に DB アップデートしている WP プラグインみたことありますが、こんなことしないでプログラムの頭で require_once(‘./wp-config.php’); するだけで WP の全機能が自分のプログラムから使えるようになります。 🙂

次は歴史編。

Q7.

WordPress 1.2 -> 1.5 のときに搭載された、近代 WP 動作はなんでしょうか?

いくつかありますが、一番大きいのは

差し替え可能なテーマファイルが使えるようになった。

でしょうか! 1.2 まではひとつのテーマ(?) しかつかえませんでしたが、これがテンプレート方式で差し替え可能になったのが 1.5 でした。 静的ページが使えるようになったのもこのころ。

Changelog/1.5 « WordPress Codex

  • Multiple Theme Support
  • Static Pages
  • Better Admin Interface
  • Dashboard

最後のとりは、番外編。

Q8.

MMRT Diary Life の Masayan さんがたまにおみまいしてくる、うそかまことかわからない記事は何通信社から発布されている?

答え!!

[tegaki]USO通信社[/tegaki]

hiromasa.(zone|another) は、MMRT の弟分ブログです。 これからもよろしくお願いいたします。 🙂

まーまー紛れの多い問題でしたが、問題つくるのって結構たいへん。

そのまま FAQ とかになれそうなものをつくるつもりで、すぐにお笑いにはしってしまいました。 まじめな方、だれかつくってくれないかなーと思いつつ、終わるのでした。 🙂

[USO]WordPress 検定試験 – 解答編」への4件のフィードバック

  1. Q2 は、get_template_directory(), get_template_directory_uri() などかと思ったのですが、これは隠し API になるんでしたっけ??

    Q5 は wp-comments-post.php が正解だと思っていました。XML-RPC は RSS 系に属すると思って除外していました。Q7 は、選択問題にして「違うものは何?」とすれば正解をユニークにできますね。

  2. yuriko さん、こんにちは 🙂

    >Q2 は、get_template_directory(), get_template_directory_uri() などかと思ったのですが、これは隠し API になるんでしたっけ??

    一応テンプレートタグってことで、bloginfo(); にしてみましが、ってことは get_bloginfo(); てもOKですね!(笑)

    >Q5 は wp-comments-post.php が正解だと思っていました。XML-RPC は RSS 系に属すると思って除外していました。

    お~! そうです、その通りです。 wp-comments-post.php ありましたね、忘れていました~。 こちらでも正解だとおもいます!

    >Q7 は、選択問題にして「違うものは何?」とすれば正解をユニークにできますね。

    そうですね!。 なかなか問題つくるのって難しいです。。

    コメントありがとうございました 🙂

  3. 参考にさせていただきました。ありがとうございます。
    こういう素人がはまりやすいところを、なんで入門書には書いていないのかと…。

コメントを残す