ホームページ > CMS チュートリアル > &#&プレス > WordPress MVCを開始します

WordPress MVCを開始します

Christopher Nolan
リリース: 2025-02-15 09:26:11
オリジナル
1047 人が閲覧しました

WordPress MVCを開始します

WordPressでは、プラグインを作成するときはプレーンPHPに固執する必要があります。これにより、PHPとHTMLコードが単一のページで混同されますが、これは良い練習ではありません。懸念の分離は、プログラムをさまざまな部分、つまりロジックとプレゼンテーションに分割する必要があると述べている設計原則です。このチュートリアルでは、この問題の1つのソリューション、WordPress MVCをご覧ください。これは、WordPressにMVCサポートを追加するプラグインであるため、プラグインをMVC Wayで書くことができます。

キーテイクアウト

  • WordPress MVCは、Model-View-Controller(MVC)アーキテクチャをWordPressに導入するプラグインであり、開発者がプラグイン開発のロジックとプレゼンテーションを分離できるようにします。
  • WordPress MVCを使用するには、WP MVCプラグインをインストールしてアクティブにする必要があります。これにより、コマンドラインの特定のMVCコマンドを使用して新しいプラグインを足場にすることができます。
  • チュートリアルでは、「AnimeList」というサンプルプラグインの構築を示しています。これには、カスタムデータベーステーブルの作成、エントリの追加と編集のフォーム、管理者とパブリックの両方でデータプレゼンテーションの管理が含まれます。
  • WordPress MVCは、コードをモデル(データ処理)、ビュー(出力プレゼンテーション)、およびコントローラー(リクエスト処理)に構築することにより、コード組織と保守性を向上させます。これは、複雑なまたは大規模なWordPressプロジェクトに特に役立ちます。
  • チュートリアルは、ワードプレスでMVC環境のセットアップ、プラグインに必要なMVCコンポーネントの生成、カスタムスタイルとスクリプトの追加、WordPressプラグインのMVCの実用的な実装の紹介まで、ワークフロー全体をカバーしています。
  • MVCとは?
  • 先に進む前に、私たち全員が同じページにいることが重要です。 MVCが何であるかを既に知っている場合は、次のセクションにスキップしてください。
  • わかりました、MVCとは何ですか? MVCはモデルビューコントローラーの略です。モデルは、アプリケーションが利用するデータを表します。データベースとの会話をするのは部分です。ビューはプレゼンテーションを扱います。 HTMLコードと基本的なプレゼンテーションロジックを入力する場所です。最後に、これら2つを結び付けることを主な仕事とするコントローラーがあります。例には、ユーザー入力の検証と消毒が含まれます。基本的に、アプリケーションの全体的な流れを制御する責任があります。

インストールとセットアップ

WP MVCは、MVCをWordPressで動作させるためにインストールする必要があるプラグインです。ここからプラグインをダウンロードして、通常WordPressにプラグインをインストールするようにインストールできます。それが完了したら、WordPressにログインして、プラグインページからアクティブになります。

プラグインを構築するMVC Way

先に進む前に、このチュートリアルで構築するものの簡単な概要を説明します。 Webサイトの管理側で作成されたすべてのアニメをリストするプラグインを構築します。このサイトがしていることとほとんど同じです。管理側には、アニメのショーを追加、リスト、編集、削除できるインターフェイスがあります。パブリック側では、特定のページのグリッドビューで表示されます。

新しいプラグインを構築する準備が整いました。 WP MVCプラグインをインストールしたパスに移動することで、それを行うことができます。

cd path/to/plugins/wp-mvc
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
次に、WPMVCファイルに実行権限を追加します。これは、新しいプラグインを生成するために使用するファイルです。

次に、新しいプラグインを生成できるようになりました。次のコマンドを実行して、それを実行します。
chmod +x wpmvc
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

これにより、WordPressインストールのWPコンテンツ/プラグインディレクトリの下に新しいプラグインが作成されます。私にとって、それはアニメリストディレクトリを作成しました。そのディレクトリを開き、Anime_list_loader.phpファイルを開きます。このファイルには、プラグインをアクティブ化または非アクティブ化すると実行される機能が含まれています。多くのカスタムデータを保存する必要があるため、オプションAPIを使用してデータベースに保存する代わりに、カスタムテーブルを作成する必要があります。そのためには、プラグインのアクティブ化時に新しいテーブルを作成するコードを追加する必要があります。 Activateメソッド内に次のコードを追加します
./wpmvc generate plugin AnimeList
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
上記のコードでは、RAW SQLクエリを使用してID、タイトル、ポスター、プロット、およびジャンルフィールドを備えたテーブルを作成しています。次に、DBDELTA関数を使用してSQLクエリを実行します。

次に、非アクティブ化方法では、混乱をきれいにする必要があります。以下のコードは、WordPressデータベースからテーブルを削除します。

global $wpdb;

$sql = '
CREATE TABLE '. $wpdb->prefix . 'animelists (
  id int(11) NOT NULL auto_increment,
  title varchar(255) NOT NULL,
  poster varchar(255) NOT NULL,
  plot TEXT NOT NULL,
  genres TEXT default NULL,
  PRIMARY KEY  (id)
)';

dbDelta($sql);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
通常、これはあなたがそれをしたい方法ではありません。一部のユーザーは、プラグインが時間の経過とともに取得したデータを引き続き必要とする場合があります。プラグインを無効にしても。しかし、物事をシンプルに保つために、ここでそれを処理しません。

WordPress Adminページから新しいプラグインをアクティブにする良い機会です。すべてが正しく機能した場合、WordPressデータベースにwp_anime_listsテーブルを作成するはずです。

次に、次のコマンドを実行します

上記のコマンドは、指定したモデルのビュー、コントローラー、モデルを生成します。最初のアニメリストはプラグインの名前で、2番目のアニメリストはモデルの名前です。 WPMVCはここで命名規則を使用していることに注意してください。モデルは常に単数形である必要があり、テーブルは複数形です。そして、モデルの名前にあるすべての大文字は、それをアンダースコアで分離する必要があることを意味します。モデルの名前は、テーブルの名前に基づいている必要があります。したがって、上記のルールを使用して、テーブルの名前がANIME_LISTSの場合、モデルにはAnimElistという名前が必要です。アンダースコアはキャメルケシングに変わり、複数形は単数形に変換されます。

次に、add.phpファイルを開き、app/views/admin/anime_lists/でedit.phpを開き、次のコードを追加します。

edit.phpファイルで
cd path/to/plugins/wp-mvc
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

chmod +x wpmvc
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
上記で行ったことは、新しいアニメショーを追加して既存のアニメショーを編集するためのフォームを作成することでした。これは、WPMVCに組み込まれたフォームヘルパーを利用します。それを分解するために、最初に新しいフォームを作成し、次にモデルの名前をその引数として提供します。この場合、モデルの名前はAnimeListです。

次に、入力方法を使用してテーブルに追加した各列を出力します。この方法は、最初の引数としてフィールドの名前を取り上げます。デフォルトでは、WPMVCは、データ型をチェックすることで出力するフィールドのタイプを決定します。したがって、データ型がvarcharの場合、テキスト入力が出力されます。データ型がテキストの場合、テキストエリアなどが出力されます。
./wpmvc generate plugin AnimeList
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

別の入力タイプを使用する場合は、入力のタイプを2番目の引数として含む配列を指定できます。

global $wpdb;

$sql = '
CREATE TABLE '. $wpdb->prefix . 'animelists (
  id int(11) NOT NULL auto_increment,
  title varchar(255) NOT NULL,
  poster varchar(255) NOT NULL,
  plot TEXT NOT NULL,
  genres TEXT default NULL,
  PRIMARY KEY  (id)
)';

dbDelta($sql);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
最後に、Endメソッドを使用してフォームを閉じます。これは、ボタンのラベルをその引数として取り上げます。

この時点で、いくつかのアニメショーを追加できるようになりました。 WP MVCは、モデルの名前にちなんで名付けられたWordPressダッシュボードに新しいメニューの追加を自動的に処理します。この場合、新しいメニューの名前は「アニメリスト」でなければなりません。そこから、「新しい」サブメニューを使用して新しいアイテムの追加を開始できます。

次に、既存のアイテムをリストするコードを更新する必要があります。次のパスで見つけることができます:
require_once ABSPATH.'wp-admin/includes/upgrade.php';

global $wpdb;

$sql = 'DROP TABLE ' . $wpdb->prefix . 'anime_lists';
$wpdb->query($sql);
ログイン後にコピー
ログイン後にコピー

デフォルトでは、次のコードが含まれています:
./wpmvc generate scaffold AnimeList AnimeList
ログイン後にコピー
ログイン後にコピー

これは、Anime_Listsテーブルに名前フィールドがないため、テーブル内のすべての行に対して返されるエラーが発生します。この問題を解決するために、私たちがしなければならないことは、wp_anime_listsテーブルにあるフィールドを使用することだけです。

ファイルを更新したら、結果は次のようになります。
<h2>Add Anime List</h2>

<?php echo $this->form->create($model->name); ?>
<?php echo $this->form->input('title'); ?>
<?php echo $this->form->input('poster'); ?>
<?php echo $this->form->input('plot'); ?>
<?php echo $this->form->input('genres'); ?>
<?php echo $this->form->input('producer'); ?>
<?php echo $this->form->end('Add'); ?>
ログイン後にコピー
ログイン後にコピー

今、私たちはウェブサイトの一般の面を進めることができます。

<h2>Edit Anime List</h2>

<?php echo $this->form->create($model->name); ?>
<?php echo $this->form->input('title'); ?>
<?php echo $this->form->input('poster'); ?>
<?php echo $this->form->input('plot'); ?>
<?php echo $this->form->input('genres'); ?>
<?php echo $this->form->input('producer'); ?>
<?php echo $this->form->end('Update'); ?>
ログイン後にコピー
ログイン後にコピー
先に進む前に、コマンドラインを使用してモデル、コントローラー、ビューを生成するたびに知っておくことが重要です。 WP MVCは、そのモデルの新しいページも割り当てます。したがって、AnimElistsモデルの場合、Anime_Listsページを作成します。 apache構成でmod_rewriteを有効にすることを忘れないでください。wordpress.htaccessファイルを追加し、permalinks設定をPost Nameを使用するように設定します。

あなたの便利さのために、私が使用している.htaccessファイルは次のとおりです。
<?php echo $this->form->create($model->name); ?>
ログイン後にコピー
ログイン後にコピー

それが完了したら、ページにアクセスできるかどうかを確認できます。デフォルトでは、そこには何も見えません。それが取り組んでいたものです。

cd path/to/plugins/wp-mvc
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

最初に、アプリ/コントローラー/anime_lists_controller.phpファイルを開きます。これは、Anime_Listsページのコントローラーです。デフォルトでは、次のコードを含める必要があります

chmod +x wpmvc
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ベースパブリックコントローラー(MVCPublicController)から追加されたデフォルトに固執したい場合は、これは問題ありません。ただし、物事を少しカスタマイズしたい場合は、次のものでインデックスメソッドをオーバーライドする必要があります。

私たちが上で行っているのは、$ this-> paramsを使用して、ベースコントローラーで提供されるデフォルトのパラメーターを取得することです。次に、デフォルト値をオーバーライドできるように変数に割り当てます。デフォルトでは、コントローラーはページごとにデータベースから10個のアイテムを選択します。 6のみを選択したい場合は、Per_Pageパラメーターを6に設定することでそれを行うことができます。
./wpmvc generate plugin AnimeList
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

カスタマイズするために必要なのはそれだけです。コードの残りの部分は、モデルのPaginateメソッドを使用してコレクションを作成するだけです。このコレクションは、「オブジェクト」(アニメショー)を渡すために使用され、ページネーションをビューに設定します。

global $wpdb;

$sql = '
CREATE TABLE '. $wpdb->prefix . 'animelists (
  id int(11) NOT NULL auto_increment,
  title varchar(255) NOT NULL,
  poster varchar(255) NOT NULL,
  plot TEXT NOT NULL,
  genres TEXT default NULL,
  PRIMARY KEY  (id)
)';

dbDelta($sql);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
Anime_Listsページのレンダリングを担当するビューを開きます。 app/views/anime_lists/index.phpにあります。開いたら、次のコードを追加します:

require_once ABSPATH.'wp-admin/includes/upgrade.php';

global $wpdb;

$sql = 'DROP TABLE ' . $wpdb->prefix . 'anime_lists';
$wpdb->query($sql);
ログイン後にコピー
ログイン後にコピー
これは、コントローラーから以前に渡されたすべてのオブジェクトをループします。ループ内では、各オブジェクトの詳細を表示するビューをレンダリングします。 render_viewメソッドは、最初の引数としてビューの名前を取り上げ、2番目の引数として渡したいデータを取り上げます。

最後に、ページネーションを出力します。
./wpmvc generate scaffold AnimeList AnimeList
ログイン後にコピー
ログイン後にコピー

次に、同じディレクトリで_item.phpファイルを開き、次のコードを追加します。
<h2>Add Anime List</h2>

<?php echo $this->form->create($model->name); ?>
<?php echo $this->form->input('title'); ?>
<?php echo $this->form->input('poster'); ?>
<?php echo $this->form->input('plot'); ?>
<?php echo $this->form->input('genres'); ?>
<?php echo $this->form->input('producer'); ?>
<?php echo $this->form->end('Add'); ?>
ログイン後にコピー
ログイン後にコピー

これは、各オブジェクトの詳細を示しています。上記のコードからわかるように、$ Object変数から各フィールドに直接アクセスできます。また、MVC_Public_Urlというヘルパー関数を使用して、各オブジェクトの個々のページを指すURLを生成しています。このメソッドは、コントローラーの名前とオブジェクトのIDを含む配列を取り上げます。

<h2>Edit Anime List</h2>

<?php echo $this->form->create($model->name); ?>
<?php echo $this->form->input('title'); ?>
<?php echo $this->form->input('poster'); ?>
<?php echo $this->form->input('plot'); ?>
<?php echo $this->form->input('genres'); ?>
<?php echo $this->form->input('producer'); ?>
<?php echo $this->form->end('Update'); ?>
ログイン後にコピー
ログイン後にコピー
これにより、次のようなURLが生成されます

次に、個々のオブジェクトページを更新する必要があります。そのために、show.phpファイルを開きます。まだ同じディレクトリにあります。
<?php echo $this->form->create($model->name); ?>
ログイン後にコピー
ログイン後にコピー

ここではそれほど違いはありません。基本的には、前のビューの出力と同じです。今回のみ、プロットも出力します。
<?php echo $this->form->input('title'); ?>
<?php echo $this->form->input('poster'); ?>
<?php echo $this->form->input('plot'); ?>
<?php echo $this->form->input('genres'); ?>
<?php echo $this->form->input('producer'); ?>
ログイン後にコピー

また、メインANIME_LISTSページへのリンクを追加しています:

<?php echo $this->form->input('is_awesome', array('type' => 'checkbox')); ?>
ログイン後にコピー

物事を目に少し心地よくするために。 Webサイトの公開面にCSSを追加しましょう。アプリ/public/CSSディレクトリにStyleSheetsを追加できます。ファイルAnime-lists.cssに名前を付けて、次のコードを追加します。

cd path/to/plugins/wp-mvc
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

作成したばかりのスタイルシートを使用するために。プラグインのアプリ/configディレクトリの下にBootstrap.phpファイルを作成します。次に、次のコードを追加します

chmod +x wpmvc
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
上記のコードは馴染みがあるはずです。通常、WordPressにカスタムスクリプトとスタイルを追加する方法です。今回のみ、MVC_CSS_URLと呼ばれる別のヘルパー関数を使用しています。この関数は、プラグインの機械に優しい名前(ヒント:プラグインのフォルダー名をコピー)とスタイルシートのファイル名を取り上げます。

それが完了したら、管理側にいくつかのアイテムを追加しました。最終的な出力は次のようになります:

WordPress MVCを開始しますこのgithubリポジトリのこのプラグインで使用されているコードを確認できます。

結論

それだけです!このチュートリアルでは、それを利用するプラグインを作成することにより、WordPressにMVCを実装する方法について学びました。このチュートリアルでは、表面を傷つけただけです。詳細については、WP MVCドキュメントを必ずチェックしてください。あなたはどうですか? WordPressに他のMVCソリューションを知っていますか、それとも使用していますか?コメントでお知らせください。

WordPress MVC

に関するよくある質問

WordPress MVCと従来のWordPress開発の違いは何ですか?

従来のWordPress開発では、PHPを使用してテーマとプラグインを作成しますが、WordPress MVC(Model-View-Controller)はデザインパターンです。 3つの相互接続コンポーネントへのアプリケーションロジック。この分離により、開発者は複雑なアプリケーションをより効率的に管理できます。モデルはデータとビジネスロジックを処理し、ビューはデータの表示を管理し、コントローラーはユーザー入力を処理します。この構造により、コードがより整理され、再利用可能で、メンテナンスが容易になります。

WordPress MVCを使用してWordPress MVCの使用を開始するには、WordPress MVCフレームワークをインストールするにはどうすればよいですか。 WP MVC、Typerocket、Rareloopなど、いくつかのオプションがあります。インストールしたら、WordPressアプリケーションのモデル、ビュー、コントローラーの作成を開始できます。これらのフレームワークは、開始を支援するための詳細なドキュメントとチュートリアルを提供します。

WordPress MVCを使用することの利点は何ですか?コードにクリーンで整理された構造を提供し、維持と更新を容易にします。また、アプリケーションのさまざまな部分で同じモデルまたはビューを使用できるため、コードの再利用性も促進します。さらに、ビジネスロジックをプレゼンテーションレイヤーから分離し、開発者とデザイナーが独立して作業できるようにします。

WordPress MVCは、すべてのタイプのWordPressプロジェクトに適していますか?ただし、簡単なWebサイトやブログの場合、従来のWordPress開発はより簡単かつ効率的かもしれません。

WordPress MVCはデータベース操作をどのように処理しますか?データベースと通信し、クエリを実行し、結果を返します。この懸念の分離により、コードがよりクリーンで管理が容易になります。発達。ただし、フロントエンドのJavaScriptなど、アプリケーションの特定の部分に他の言語を使用できます。 WordPress MVCを学びます。使用しているMVCフレームワークの公式ドキュメントから始めることができます。また、コミュニティから学び、助けを得ることができるオンラインチュートリアル、コース、フォーラムもあります。

以上がWordPress MVCを開始しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート