WordPressの開発を学ぶのを手助けするために、私は「ブログを超えて」パーソナルムービーライブラリを構築したいと思います - IMDbに似ていますが、はるかに小規模です。
WordPressでプロジェクトにどのように取り組むか、そして何を学ぶ必要があるのかを理解するのに助けが必要です。
これは私がサイト上でやりたいことの種類です。
俳優のページにアクセスすると、その俳優の映画がデータベースから取得されて表示されます。映画を年、タイトル、評価などで並べ替えることができます。また、映画のタイトルをクリックしてその映画のページに移動することもできます。
映画のページにアクセスすると、映画の俳優がデータベースから取得され、映画の概要、評価、DVDを所有しているかどうかなどの情報と共に表示されます。
ホームページでは、映画の検索を実行できます。たとえば、80年代のコメディを好む場合は、1980年から1989年の間にDVDで所有しているコメディのジャンルの映画を検索できます。
私はすでに必要なPHPとMySQLのすべてを書くことができますが、コードが実際にWordPressのどこに入るのかわかりません。例えば...
このアプリケーションではプラグインを作成する必要がありますか、それとも私のテーマにコードを追加するだけですか?
各アクターのページは「ページ」として扱われるのでしょうか、それとも投稿として扱われるのでしょうか。
俳優ページの場合、映画のリストを取得するクエリはどこに行くのでしょうか。
検索フォームが送信されたとき、検索要求を処理するスクリプトはどこにありますか?
-
WordPressがこのようなアプリケーションをどのように処理するかについて、正しい方向へのプッシュを探しているだけです。前もって感謝します!
"このアプリケーションでは、プラグインをビルドする必要がありますか、それとも単にテーマにコードを追加するだけですか?"
基本的に、4つはすべて同じです。それらは2つの点でのみ異なります。
場所と
mu-plugins
フォルダーにあります 1)plugins
ディレクトリにありますwp-content
フォルダーにフォルダー外の単一ファイルとして存在しますthemes
ディレクトリおよび/またはregister_theme_directory();
で登録した他のディレクトリにあります(ドロップインで行う必要があります)。読み込み順序、したがってwordpressフックへのアクセス。
'muplugins_loaded'
にアクセスできます'plugins_loaded'
にアクセスできます'after_theme_setup'
にアクセスできます…およびそれ以降のフック。
"各アクターのページは「ページ」として扱われますか、それとも投稿として扱われますか?"
WordPressには-すぐに使える-組み込みの投稿タイプがあります
ただし、独自の CPTs を追加する可能性があります 2)。 Movie/Actorの独自のCPTをセットアップする方法、または this great one (チュートリアルを含む)のようなクラスのセットをベースとして使用する方法に関するリンクされたCodexの記事を読むだけです Toscho 。
WordPressも分類法に組み込まれました
"俳優ページの場合、映画のリストを取得するクエリはどこに行くのですか?"
WordPressは テンプレート階層 を取得しました。基本的には2つのことです:
@ Rarst によるこの投稿は、WPがリクエストによってまだ配信していない場合に、WP_Queryを変更して希望する投稿を正確に取得する方法の基本を説明します。
場合によっては、WPを少し減らして、APPのインターフェイスをよりクリーンにすることもできます。出発点として WP Strip Naked を見てください。
プラグインに追加した場合は、コメントを残すか、さらに良いことにそれを変更してgithubでプルリクエストを行います。
Posts2Posts は、投稿またはCPTを相互接続する必要がある場合の方法です。プラグインなしでそれを処理しようとすることは実際には意味がありません。著者はコア貢献者であり、それをさらに開発することを常に気にしているからです。
投稿タイプに特別なフィールドが必要な場合は、たとえば RW_Meta_Box
クラスセットのようなライブラリを使用した方が良いでしょう。 Posts2Postsプラグインと同様に、これを自分で回避しようとすることは意味がありません-努力する価値はありません 3)。
"検索フォームが送信されると、検索リクエストを処理するスクリプトはどこにありますか?"
一般に、WPには、検索フォームや検索結果ページなどを表示するための組み込みのもの(テンプレートタグと呼ばれる)があります。
すでに別の答えがあります、私は これについて詳しく書きました です。このアプローチは、ユースケースに合わせて調整できます。
多くの場合、出力を変更する代わりに、テーマのfunctions.phpまたはプラグインファイルでフックまたはフィルターを使用する必要があります。一般的に言って、それはフライトとオンデマンドで物事を変更する方法です。これにより、APPのパフォーマンスが向上し、テンプレートの外にコードが保持されます。プレクスは、コーデックスのこのトピックに関する詳細を読むだけです。
いつものように、特別なケースでは、救助のために PODS を得ました。このプラグインは、あらゆる種類の特別な目的のコンテンツタイプに対応するスイスアーミーナイフです。さらに、カスタムおよびビルトインのもの(ユーザーから投稿タイプまで)との関係でビルトインされました。
1)"注意すべきことの1つは、Must Use Pluginsは通常、プラグインヘッダーを含む1つのファイルを持つ独自のディレクトリにそれぞれ格納される通常のプラグインのように機能しないことです。 MUプラグインではWordPressはmu-pluginsディレクトリでのみ.PHPファイルを検索し、サブディレクトリ内のファイルは検索しないため、通常のプラグインをMUプラグインディレクトリに移動する場合は、おそらくプロキシ.PHPファイル。そのファイルには、サブディレクトリからプラグインのメイン.PHPを含めるPHP require_once()が含まれている必要があります。または、muにあるプラグインごとにrequire_once()で単一の.PHPファイルを作成できます-pluginsディレクトリ。" hakresブログのMike Schinkel MU-Pluginsトピック
2)CPTはカスタム投稿タイプの略です
3)約2か月前に独自のクラスセットの開発を中止し、Rilws/Anhsライブラリに時間を費やしました。開発は急速に進んでおり、ほぼすべてのプルリクエストに「ありがとう」と返信します。