WordPressでは、プラグインを作成するときはプレーンPHPに固執(zhí)する必要があります。これにより、PHPとHTMLコードが単一のページで混同されますが、これは良い練習ではありません。懸念の分離は、プログラムをさまざまな部分、つまりロジックとプレゼンテーションに分割する必要があると述べている設(shè)計原則です。このチュートリアルでは、この問題の1つのソリューション、WordPress MVCをご覧ください。これは、WordPressにMVCサポートを追加するプラグインであるため、プラグインをMVC Wayで書くことができます。
キーテイクアウト
- WordPress MVCは、Model-View-Controller(MVC)アーキテクチャをWordPressに導(dǎo)入するプラグインであり、開発者がプラグイン開発のロジックとプレゼンテーションを分離できるようにします。 WordPress MVCを使用するには、WP MVCプラグインをインストールしてアクティブにする必要があります。これにより、コマンドラインの特定のMVCコマンドを使用して新しいプラグインを足場にすることができます。
- チュートリアルでは、「AnimeList」というサンプルプラグインの構(gòu)築を示しています。これには、カスタムデータベーステーブルの作成、エントリの追加と編集のフォーム、管理者とパブリックの両方でデータプレゼンテーションの管理が含まれます。 WordPress MVCは、コードをモデル(データ処理)、ビュー(出力プレゼンテーション)、およびコントローラー(リクエスト処理)に構(gòu)築することにより、コード組織と保守性を向上させます。これは、複雑なまたは大規(guī)模なWordPressプロジェクトに特に役立ちます。
- チュートリアルは、ワードプレスでMVC環(huán)境のセットアップ、プラグインに必要なMVCコンポーネントの生成、カスタムスタイルとスクリプトの追加、WordPressプラグインのMVCの実用的な実裝の紹介まで、ワークフロー全體をカバーしています。
- MVCとは?
- 先に進む前に、私たち全員が同じページにいることが重要です。 MVCが何であるかを既に知っている場合は、次のセクションにスキップしてください。 わかりました、MVCとは何ですか? MVCはモデルビューコントローラーの略です。モデルは、アプリケーションが利用するデータを表します。データベースとの會話をするのは部分です。ビューはプレゼンテーションを扱います。 HTMLコードと基本的なプレゼンテーションロジックを入力する場所です。最後に、これら2つを結(jié)び付けることを主な仕事とするコントローラーがあります。例には、ユーザー入力の検証と消毒が含まれます?;镜膜?、アプリケーションの全體的な流れを制御する責任があります。
インストールとセットアップ
WP MVCは、MVCをWordPressで動作させるためにインストールする必要があるプラグインです。ここからプラグインをダウンロードして、通常WordPressにプラグインをインストールするようにインストールできます。それが完了したら、WordPressにログインして、プラグインページからアクティブになります。
プラグインを構(gòu)築するMVC Way
先に進む前に、このチュートリアルで構(gòu)築するものの簡単な概要を説明します。 Webサイトの管理側(cè)で作成されたすべてのアニメをリストするプラグインを構(gòu)築します。このサイトがしていることとほとんど同じです。管理側(cè)には、アニメのショーを追加、リスト、編集、削除できるインターフェイスがあります。パブリック側(cè)では、特定のページのグリッドビューで表示されます。
新しいプラグインを構(gòu)築する準備が整いました。 WP MVCプラグインをインストールしたパスに移動することで、それを行うことができます。
cd path/to/plugins/wp-mvc次に、WPMVCファイルに実行権限を追加します。これは、新しいプラグインを生成するために使用するファイルです。
次に、新しいプラグインを生成できるようになりました。次のコマンドを?qū)g行して、それを?qū)g行します。
chmod +x wpmvc
これにより、WordPressインストールのWPコンテンツ/プラグインディレクトリの下に新しいプラグインが作成されます。私にとって、それはアニメリストディレクトリを作成しました。そのディレクトリを開き、Anime_list_loader.phpファイルを開きます。このファイルには、プラグインをアクティブ化または非アクティブ化すると実行される機能が含まれています。多くのカスタムデータを保存する必要があるため、オプションAPIを使用してデータベースに保存する代わりに、カスタムテーブルを作成する必要があります。そのためには、プラグインのアクティブ化時に新しいテーブルを作成するコードを追加する必要があります。 Activateメソッド內(nèi)に次のコードを追加します
./wpmvc generate plugin AnimeList上記のコードでは、RAW SQLクエリを使用してID、タイトル、ポスター、プロット、およびジャンルフィールドを備えたテーブルを作成しています。次に、DBDELTA関數(shù)を使用してSQLクエリを?qū)g行します。
次に、非アクティブ化方法では、混亂をきれいにする必要があります。以下のコードは、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テーブルを作成するはずです。
次に、次のコマンドを?qū)g行します
上記のコマンドは、指定したモデルのビュー、コントローラー、モデルを生成します。最初のアニメリストはプラグインの名前で、2番目のアニメリストはモデルの名前です。 WPMVCはここで命名規(guī)則を使用していることに注意してください。モデルは常に単數(shù)形である必要があり、テーブルは複數(shù)形です。そして、モデルの名前にあるすべての大文字は、それをアンダースコアで分離する必要があることを意味します。モデルの名前は、テーブルの名前に基づいている必要があります。したがって、上記のルールを使用して、テーブルの名前がANIME_LISTSの場合、モデルにはAnimElistという名前が必要です。アンダースコアはキャメルケシングに変わり、複數(shù)形は単數(shù)形に変換されます。次に、add.phpファイルを開き、app/views/admin/anime_lists/でedit.phpを開き、次のコードを追加します。
edit.phpファイルでcd path/to/plugins/wp-mvc:
chmod +x wpmvc上記で行ったことは、新しいアニメショーを追加して既存のアニメショーを編集するためのフォームを作成することでした。これは、WPMVCに組み込まれたフォームヘルパーを利用します。それを分解するために、最初に新しいフォームを作成し、次にモデルの名前をその引數(shù)として提供します。この場合、モデルの名前はAnimeListです。
次に、入力方法を使用してテーブルに追加した各列を出力します。この方法は、最初の引數(shù)としてフィールドの名前を取り上げます。デフォルトでは、WPMVCは、データ型をチェックすることで出力するフィールドのタイプを決定します。したがって、データ型がvarcharの場合、テキスト入力が出力されます。データ型がテキストの場合、テキストエリアなどが出力されます。
./wpmvc generate plugin AnimeList
別の入力タイプを使用する場合は、入力のタイプを2番目の引數(shù)として含む配列を指定できます。
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メソッドを使用してフォームを閉じます。これは、ボタンのラベルをその引數(shù)として取り上げます。
この時點で、いくつかのアニメショーを追加できるようになりました。 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テーブルに名前フィールドがないため、テーブル內(nèi)のすべての行に対して返されるエラーが発生します。この問題を解決するために、私たちがしなければならないことは、wp_anime_listsテーブルにあるフィールドを使用することだけです。
ファイルを更新したら、結(jié)果は次のようになります。
<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構(gòu)成でmod_rewriteを有効にすることを忘れないでください。wordpress.htaccessファイルを追加し、permalinks設(shè)定をPost Nameを使用するように設(shè)定します。
あなたの便利さのために、私が使用している.htaccessファイルは次のとおりです。
<?php echo $this->form->create($model->name); ?>
それが完了したら、ページにアクセスできるかどうかを確認できます。デフォルトでは、そこには何も見えません。それが取り組んでいたものです。
cd path/to/plugins/wp-mvc
最初に、アプリ/コントローラー/anime_lists_controller.phpファイルを開きます。これは、Anime_Listsページのコントローラーです。デフォルトでは、次のコードを含める必要があります
chmod +x wpmvcベースパブリックコントローラー(MVCPublicController)から追加されたデフォルトに固執(zhí)したい場合は、これは問題ありません。ただし、物事を少しカスタマイズしたい場合は、次のものでインデックスメソッドをオーバーライドする必要があります。
私たちが上で行っているのは、$ this-> paramsを使用して、ベースコントローラーで提供されるデフォルトのパラメーターを取得することです。次に、デフォルト値をオーバーライドできるように変數(shù)に割り當てます。デフォルトでは、コントローラーはページごとにデータベースから10個のアイテムを選択します。 6のみを選択したい場合は、Per_Pageパラメーターを6に設(shè)定することでそれを行うことができます。
./wpmvc generate plugin AnimeList
カスタマイズするために必要なのはそれだけです。コードの殘りの部分は、モデルのPaginateメソッドを使用してコレクションを作成するだけです。このコレクションは、「オブジェクト」(アニメショー)を渡すために使用され、ページネーションをビューに設(shè)定します。
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);これは、コントローラーから以前に渡されたすべてのオブジェクトをループします。ループ內(nèi)では、各オブジェクトの詳細を表示するビューをレンダリングします。 render_viewメソッドは、最初の引數(shù)としてビューの名前を取り上げ、2番目の引數(shù)として渡したいデータを取り上げます。
最後に、ページネーションを出力します。
./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変數(shù)から各フィールドに直接アクセスできます。また、MVC_Public_Urlというヘルパー関數(shù)を使用して、各オブジェクトの個々のページを指す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と呼ばれる別のヘルパー関數(shù)を使用しています。この関數(shù)は、プラグインの機械に優(yōu)しい名前(ヒント:プラグインのフォルダー名をコピー)とスタイルシートのファイル名を取り上げます。
それが完了したら、管理側(cè)にいくつかのアイテムを追加しました。最終的な出力は次のようになります:

結(jié)論
それだけです!このチュートリアルでは、それを利用するプラグインを作成することにより、WordPressにMVCを?qū)g裝する方法について學びました。このチュートリアルでは、表面を傷つけただけです。詳細については、WP MVCドキュメントを必ずチェックしてください。あなたはどうですか? WordPressに他のMVCソリューションを知っていますか、それとも使用していますか?コメントでお知らせください。
WordPress MVC
に関するよくある質(zhì)問WordPress MVCと従來のWordPress開発の違いは何ですか?
従來のWordPress開発では、PHPを使用してテーマとプラグインを作成しますが、WordPress MVC(Model-View-Controller)はデザインパターンです。 3つの相互接続コンポーネントへのアプリケーションロジック。この分離により、開発者は複雑なアプリケーションをより効率的に管理できます。モデルはデータとビジネスロジックを処理し、ビューはデータの表示を管理し、コントローラーはユーザー入力を処理します。この構(gòu)造により、コードがより整理され、再利用可能で、メンテナンスが容易になります。
WordPress MVCを使用してWordPress MVCの使用を開始するには、WordPress MVCフレームワークをインストールするにはどうすればよいですか。 WP MVC、Typerocket、Rareloopなど、いくつかのオプションがあります。インストールしたら、WordPressアプリケーションのモデル、ビュー、コントローラーの作成を開始できます。これらのフレームワークは、開始を支援するための詳細なドキュメントとチュートリアルを提供します。
WordPress MVCを使用することの利點は何ですか?コードにクリーンで整理された構(gòu)造を提供し、維持と更新を容易にします。また、アプリケーションのさまざまな部分で同じモデルまたはビューを使用できるため、コードの再利用性も促進します。さらに、ビジネスロジックをプレゼンテーションレイヤーから分離し、開発者とデザイナーが獨立して作業(yè)できるようにします。WordPress MVCは、すべてのタイプのWordPressプロジェクトに適していますか?ただし、簡単なWebサイトやブログの場合、従來のWordPress開発はより簡単かつ効率的かもしれません。WordPress MVCはデータベース操作をどのように処理しますか?データベースと通信し、クエリを?qū)g行し、結(jié)果を返します。この懸念の分離により、コードがよりクリーンで管理が容易になります。発達。ただし、フロントエンドのJavaScriptなど、アプリケーションの特定の部分に他の言語を使用できます。 WordPress MVCを?qū)Wびます。使用しているMVCフレームワークの公式ドキュメントから始めることができます。また、コミュニティから學び、助けを得ることができるオンラインチュートリアル、コース、フォーラムもあります。
WordPress MVCはデータベース操作をどのように処理しますか?データベースと通信し、クエリを?qū)g行し、結(jié)果を返します。この懸念の分離により、コードがよりクリーンで管理が容易になります。発達。ただし、フロントエンドのJavaScriptなど、アプリケーションの特定の部分に他の言語を使用できます。 WordPress MVCを?qū)Wびます。使用しているMVCフレームワークの公式ドキュメントから始めることができます。また、コミュニティから學び、助けを得ることができるオンラインチュートリアル、コース、フォーラムもあります。
以上がWordPress MVCを開始しますの詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

WordPressがサーバーCPU使用の急増を引き起こす主な理由には、プラグインの問題、非効率的なデータベースクエリ、テーマコードの品質(zhì)の低さ、またはトラフィックの急増が含まれます。 1.最初に、トップ、HTOP、またはコントロールパネルツールを介したWordPressによって引き起こされる高い負荷であるかどうかを確認します。 2.トラブルシューティングモードを入力して、プラグインを徐々に有効にしてパフォーマンスのボトルネックをトラブルシューティングし、QueryMonitorを使用してプラグインの実行を分析し、非効率的なプラグインを削除または交換します。 3.キャッシュプラグインをインストールし、冗長データをクリーンアップし、スロークエリログを分析してデータベースを最適化します。 4.トピックには、コンテンツの過負荷、複雑なクエリ、キャッシングメカニズムの欠如などの問題があるかどうかを確認します。標準のトピックテストを使用して、コードロジックを比較および最適化することをお勧めします。上記の手順に従って、場所を確認して解決し、問題を1つずつ解決します。

JavaScriptファイルをマイニングすると、ブランク、コメント、役に立たないコードを削除することにより、WordPress Webサイトの読み込み速度を向上させることができます。 1。W3TOTALCACHEなどの圧縮をサポートするキャッシュプラグインを使用し、「MINIFY」オプションで圧縮モードを有効にし、選択します。 2。FastVelocityMinifyなどの専用圧縮プラグインを使用して、より細かい制御を提供します。 3. JSファイルを手動で圧縮し、FTPを介してアップロードします。これは、開発ツールに精通しているユーザーに適しています。一部のテーマまたはプラグインスクリプトは圧縮関數(shù)と競合する可能性があり、アクティベーション後にWebサイト機能を徹底的にテストする必要があることに注意してください。

プラグインに依存しないWordPressサイトを最適化する方法は次のとおりです。1。積み重なったテーマを避けるために、AstraやGeneratePressなどの軽量テーマを使用します。 2. CSSおよびJSファイルを手動で圧縮およびマージして、HTTP要求を削減します。 3.アップロードする前に畫像を最適化し、WebP形式を使用し、ファイルサイズを制御します。 4. configure.htaccessブラウザキャッシュを有効にし、CDNに接続して靜的リソースの負荷速度を向上させます。 5.記事の改訂を制限し、定期的にデータベース冗長データをクリーンにします。

コメントスパムを防ぐ最も効果的な方法は、プログラマティックな手段を介して自動的に識別して傍受することです。 1.検証コードメカニズム(Googler CaptchaやHcaptchaなど)を使用して、特に公共のWebサイトに適した人間とロボットを効果的に區(qū)別します。 2.隠しフィールド(ハニーポットテクノロジー)を設(shè)定し、ロボットを使用して機能を自動的に埋めて、ユーザーエクスペリエンスに影響を與えることなくスパムコメントを識別します。 3.コメントコンテンツのブラックリストを確認し、敏感な単語の一致を通じてスパム情報をフィルタリングし、誤判斷を避けるために注意を払ってください。 4.コメントの頻度とソースIPを判斷し、単位時間あたりの提出數(shù)を制限し、ブラックリストを確立します。 5.サードパーティのスパムサービス(Akismet、CloudFlareなど)を使用して、識別の精度を向上させます。ウェブサイトに基づいていることができます

Transientapiは、自動有効期限データを一時的に保存するためのWordPressの組み込みツールです。そのコア関數(shù)は、set_transient、get_transient、delete_transientです。 OptionsAPIと比較して、Transimentsは、Cache API要求の結(jié)果や複雑なコンピューティングデータなどのシナリオに適した、生存時間(TTL)の設(shè)定をサポートしています。それを使用する場合、キーネーミングと名前空間の獨自性、キャッシュ「怠zyな削除」メカニズム、およびオブジェクトキャッシュ環(huán)境では続かない問題に注意を払う必要があります。一般的なアプリケーションシナリオには、外部要求頻度の削減、コード実行リズムの制御、ページの読み込みパフォーマンスの改善が含まれます。

Gutenbergブロックを開発する場合、エンキュー資産の正しい方法には次のものが含まれます。1。register_block_typeを使用して、editor_script、editor_style、およびstyleのパスを指定します。 2。functions.phpまたはプラグインでwp_register_scriptとwp_register_styleを介してリソースを登録し、正しい依存関係とバージョンを設(shè)定します。 3.適切なモジュール形式を出力し、パスが一貫していることを確認するためのビルドツールを構(gòu)成します。 4. Add_Theme_SupportまたはEnqueue_Block_Assetsを介してフロントエンドスタイルの読み込みロジックを制御して、フロントエンドスタイルのロードロジックが確保されるようにします。

カスタムユーザーフィールドを追加するには、プラットフォームに従って拡張メソッドを選択し、データ検証と許可制御に注意を払う必要があります。一般的なプラクティスには次のものが含まれます。1。データベースの追加のテーブルまたはキー価値ペアを使用して情報を保存します。 2.フロントエンドに入力ボックスを追加し、バックエンドと統(tǒng)合します。 3。機密データのフォーマットチェックとアクセス許可を制約します。 4.モバイルの適応とユーザーエクスペリエンスを考慮しながら、新しいフィールド表示と編集をサポートするインターフェイスとテンプレートを更新します。

WordPressにカスタム書き換えルールを追加する鍵は、ADD_REWRITE_RULE関數(shù)を使用し、ルールが正しく有効になることを確認することです。 1. add_rewrite_ruleを使用してルールを登録します。形式はadd_rewrite_rule($ regex、$ redirect、$ after)です。 2。add_filterを介してカスタムクエリ変數(shù)を追加する必要があります。 3。変更後、固定リンク設(shè)定を更新する必要があります。 4.紛爭を避けるために、ルールを「トップ」に配置することをお勧めします。 5.プラグインを使用して、利便性のために現(xiàn)在のルールを表示できます
