搜尋
首頁CMS教程&#&按開始使用WordPress MVC

開始使用WordPress MVC

在WordPress中,我們通常必須在創建插件時堅持使用普通的PHP。這導致PHP和HTML代碼在單頁中混合在一起,這不是一個好習慣。關注點的分離是一個設計原則,該設計原則指出,我們應該將程序分為不同的部分,即邏輯和演示文稿。在本教程中,我們將研究一個解決此問題的解決方案:WordPress MVC。這是一個為WordPress添加MVC支持的插件,因此我們可以以MVC方式編寫插件。

鑰匙要點

    > WordPress MVC是一個插件,將模型視圖 - 控制器(MVC)架構引入WordPress,使開發人員能夠在插件開發中分離邏輯和演示。
  • >
  • 要使用WordPress MVC,您必須安裝和激活WP MVC插件,然後允許您使用命令行中的特定MVC命令進行腳克式新插件。
  • >
  • >教程演示了構建一個名為“ Animelist”的示例插件,其中包括創建自定義數據庫表,用於添加和編輯條目的表單以及在Admin和公共側面管理數據顯示。 通過將代碼構造到模型(數據處理),視圖(輸出表示)和控制器(請求處理)中,
  • WordPress MVC可以增強代碼組織和可維護性,這對於復雜或大規模的WordPress項目特別有用。 該教程涵蓋了從WordPress中設置MVC環境,為插件生成必要的MVC組件,以添加自定義樣式和腳本,在WordPress插件開發中展示MVC的實際實現。
  • >>>>>>
  • 什麼是mvc?
  • 在我們繼續前進之前,重要的是我們都在同一頁面上。如果您已經知道什麼是MVC,請隨時跳到下一節。
  • >
好,那麼什麼是MVC? MVC代表模型視圖控制器。該模型表示我們應用程序使用的數據。這是與數據庫交談的部分。該視圖涉及演示文稿。這是我們使用HTML代碼和基本演示邏輯的地方。最後是一個控制器,其主要工作是將這兩者綁在一起。示例包括驗證和消毒用戶輸入。它基本上負責控制應用程序的整體流程。

>安裝和設置

WP MVC是一個插件,我們需要安裝它,以使MVC與WordPress一起使用。您可以在此處下載插件並像通常在WordPress中安裝插件一樣安裝它。完成此操作後,登錄WordPress並從您的插件頁面激活它。

>

構建插件MVC方式

>在我們繼續前進之前,我將簡要介紹一下我們在本教程中將要構建的內容。我們將構建一個插件,該插件將列出網站管理員端創建的所有動漫。幾乎就像這個網站所做的那樣。在管理方面,我們將擁有一個接口,可以在其中添加,列表,編輯或刪除動漫顯示。在公共方面,我們將在特定頁面中的網格視圖中介紹它們。 >

>現在我們準備構建一個新的插件。您可以通過導航到安裝WP MVC插件的路徑來做到這一點。

>

然後,將執行權限添加到WPMVC文件中。這是我們將用於生成新插件的文件。
cd path/to/plugins/wp-mvc
>

接下來,我們現在可以生成一個新的插件。執行以下命令來執行此操作。
chmod +x wpmvc

這將在WordPress安裝的WP-CONTENT/插件目錄下創建一個新的插件。對我來說,它創建了一個動漫列表目錄。打開該目錄,然後打開anime_list_loader.php文件。該文件包含在激活或停用插件後將執行的函數。由於我們需要節省大量自定義數據,因此我們必須創建一個自定義表,而不是使用選項API將內容存儲在數據庫中。為此,我們必須添加將在插件激活時創建新表的代碼。在激活方法中添加以下代碼。
./wpmvc generate plugin AnimeList

在上面的代碼中,我們正在創建一個具有ID,標題,海報,情節和流派字段的表,使用RAW SQL查詢。然後使用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管理頁面激活新插件的好時機。如果一切正常工作,那應該在WordPress數據庫中創建WP_ANIME_LISTS表。

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

global $wpdb;

$sql = 'DROP TABLE ' . $wpdb->prefix . 'anime_lists';
$wpdb->query($sql);
接下來,執行以下命令:>

>上面的命令生成了您指定的模型的視圖,控制器和模型。第一個動畫主義者是插件的名稱,第二個是模型的名稱。請注意,WPMVC在此處使用命名約定。模型應始終以奇異形式,桌子是複數形式。並且每個以模型名義的大寫字母意味著應與下劃線分開。模型的名稱應基於表的名稱。因此,使用上面的規則,如果表的名稱是Anime_Lists,則該模型應名為Animelist。下劃線變成駱駝飾,並將復數轉化為單數形式。

下一步,在應用程序/views/admin/anime_lists/下打開add.php文件和edit.php,並添加以下代碼:

>
cd path/to/plugins/wp-mvc

>在edit.php文件上:

chmod +x wpmvc
我們上述所做的是創建用於添加新動漫節目和編輯現有的表格。這利用了WPMVC內置的形式助手。要分解它,首先我們創建一個新的形式,然後提供模型的名稱作為其參數。在這種情況下,該模型的名稱是Animelist。

接下來,我們使用輸入方法在表中添加的每一列輸出每個列。該方法將字段的名稱作為其第一個參數。默認情況下,WPMVC通過檢查數據類型確定將輸出的字段類型。因此,如果數據類型為VARCHAR,它將輸出文本輸入。如果數據類型是文本,它將輸出文本方面等等。

>
./wpmvc generate plugin AnimeList

如果要使用另一種輸入類型,則可以指定一個包含輸入類型的數組作為第二個參數:>

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);
>最後,我們使用結束方法關閉表單。這將按鈕的標籤作為其參數。

>

在這一點上,我們現在可以添加一些動漫節目。 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 id="Add-Anime-List">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 id="Edit-Anime-List">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文件,然後將永久鏈接設置設置為使用帖子名稱。

<?php echo $this->form->create($model->name); ?>
為了方便起見,這是我正在使用的.htaccess文件:>

>完成此操作後,您可以檢查是否可以訪問該頁面。默認情況下,您不會在其中看到任何東西。這就是要處理的。 開始使用WordPress MVC
cd path/to/plugins/wp-mvc

首先,打開app/controllers/anime_lists_controller.php文件。這是Anime_Lists頁面的控制器。默認情況下,它應包含以下代碼:

>
chmod +x wpmvc

>如果要堅持從基本公共控制器(MVCPUBLICCONTROLLER)添加的默認值,這很好。但是,如果您想對內容進行自定義,則必須使用以下內容覆蓋索引方法:

./wpmvc generate plugin AnimeList
我們上面正在做的是通過使用$ this-> params在基本控制器中提供默認參數。然後,我們將其分配給一個變量,以便可以覆蓋默認值。默認情況下,控制器每頁從數據庫中選擇10個項目。如果我只想選擇6,我可以通過將per_page參數設置為6:來做到這一點

>這確實是我們需要自定義的全部。該代碼的其餘部分僅在模型中使用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方法將視圖的名稱作為其第一個參數,而我們要傳遞的數據作為第二個。

./wpmvc generate scaffold AnimeList AnimeList
最後,我們輸出分頁。

接下來,在同一目錄上打開_item.php文件,然後添加以下代碼:
<h2 id="Add-Anime-List">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'); ?>
>

>這顯示了每個對象的詳細信息。從上面的代碼中可以看到,我們可以直接從$對像變量訪問每個字段。我們還使用稱為MVC_PUBLIC_URL的輔助函數來生成一個指向每個對象的單個頁面的URL。此方法佔用一個數組,其中包含控制器的名稱和對象的ID。
<h2 id="Edit-Anime-List">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:

>
<?php echo $this->form->create($model->name); ?>

接下來,我們還必須更新單個對象頁面。為此,請打開show.php文件。仍在同一目錄中。

<?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->input('is_awesome', array('type' => 'checkbox')); ?>

我們還添加了一個鏈接到主要的Anime_lists頁面:

<?php echo $this->form->end('Add'); ?>
讓事情有些愉悅。讓我們為網站的公眾面對面添加一些CSS。您可以在應用程序/public/css目錄上添加樣式表。只需命名文件動漫列表。
cd path/to/plugins/wp-mvc
為了使用我們剛剛創建的樣式表。在插件的應用/配置目錄下創建Bootstrap.php文件。然後,我們添加以下代碼:

chmod +x wpmvc
上面的代碼應該看起來很熟悉。這是我們通常在WordPress中添加自定義腳本和样式的方式。只有這次,我們使用了另一個稱為MVC_CSS_URL的輔助功能。此功能訪問了插件的機器友好名稱(提示:複製插件的文件夾名稱)和样式表的文件名。

完成此操作後,您已經在管理員側添加了一些項目。最終輸出應該看起來像這樣:

>您可以在此github存儲庫上查看此插件中使用的代碼。 開始使用WordPress MVC結論

就是這樣!在本教程中,您通過創建利用它的插件來了解如何在WordPress中實現MVC。我們只在本教程中刮擦了表面。請務必查看WP MVC文檔以了解更多信息。你呢?您知道或使用其他任何MVC解決方案用於WordPress嗎?在評論中讓我們知道。

經常詢問有關WordPress MVC

的問題

WordPress MVC和傳統的WordPress開發之間有什麼區別?

傳統的WordPress開發涉及使用PHP來創建主題和插件,而WordPress MVC(模型視圖控制器)是一種設計模式,是一種分隔的設計模式應用程序邏輯分為三個互連組件。這種分離使開發人員可以更有效地管理複雜的應用程序。該模型處理數據和業務邏輯,視圖管理數據顯示,並且控制器處理用戶輸入。該結構使代碼更有條理,可重複使用且更易於維護。

如何開始使用WordPress MVC?

開始使用WordPress MVC,您需要安裝WordPress MVC框架。有幾種可用的選項,例如WP MVC,Typerocket或Rareloop。安裝後,您可以開始為WordPress應用程序創建模型,視圖和控制器。這些框架提供了詳細的文檔和教程,以幫助您開始。

>

>使用WordPress MVC? wordpress MVC有什麼好處。它為您的代碼提供了乾淨且有條理的結構,從而更容易維護和更新。它還可以促進代碼可重複使用性,因為您可以在應用程序的不同部分使用相同的模型或查看。此外,它將業務邏輯與演示層分開,使開發人員和設計師能夠獨立工作。WordPress MVC適合所有類型的WordPress項目嗎? 我可以將WordPress MVC與現有的WordPress主題和插件一起使用嗎?

是的,您可以將WordPress MVC與WordPress MVC一起使用現有主題和插件。但是,您可能需要修改代碼以適合MVC結構。也可以創建自己的基於MVC的主題和插件。

>

>如果您熟悉MVC設計模式並且具有PHP的經驗,很難學習WordPress MVC?學習WordPress MVC應該相對簡單。但是,如果您是MVC或PHP的新手,則可能需要一些時間才能適應結構和語法。

>

>我可以將WordPress MVC用於電子商務網站嗎? ,WordPress MVC可用於電子商務網站。它可以處理複雜的功能和大型數據庫,使其適用於在線商店。

>

> wordpress MVC如何處理數據庫操作?

我可以將WordPress MVC與其他編程語言一起使用嗎?

以上是開始使用WordPress MVC的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
wordpress怎麼加評論框wordpress怎麼加評論框Apr 20, 2025 pm 12:15 PM

在 WordPress 網站上啟用評論功能,可以為訪客提供參與討論和分享反饋的平台。為此,請按照以下步驟操作:啟用評論:在儀錶盤中,導航至“設置”>“討論”,並選中“允許評論”複選框。創建評論表單:在編輯器中,單擊“添加塊”並蒐索“評論”塊,將其添加到內容中。自定義評論表單:通過設置標題、標籤、佔位符和按鈕文本來定制評論塊。保存更改:單擊“更新”以保存評論框並將其添加到頁面或文章中。

wordpress怎麼複製子站wordpress怎麼複製子站Apr 20, 2025 pm 12:12 PM

如何復制 WordPress 子站?步驟:在主站創建子站。在主站克隆子站。將克隆導入目標位置。更新域名(可選)。分開插件和主題。

wordpress怎麼寫頁頭wordpress怎麼寫頁頭Apr 20, 2025 pm 12:09 PM

在WordPress中創建自定義頁頭的步驟如下:編輯主題文件“header.php”。添加您的網站名稱和描述。創建導航菜單。添加搜索欄。保存更改並查看您的自定義頁頭。

wordpress評論怎麼顯示wordpress評論怎麼顯示Apr 20, 2025 pm 12:06 PM

WordPress 網站中啟用評論功能:1. 登錄管理面板,轉到 "設置"-"討論",勾選 "允許評論";2. 選擇顯示評論的位置;3. 自定義評論表單;4. 管理評論,批准、拒絕或刪除;5. 使用 <?php comments_template(); ?> 標籤顯示評論;6. 啟用嵌套評論;7. 調整評論外形;8. 使用插件和驗證碼防止垃圾評論;9. 鼓勵用戶使用 Gravatar 頭像;10. 創建評論指

wordpress怎麼上傳源碼wordpress怎麼上傳源碼Apr 20, 2025 pm 12:03 PM

可以通過 WordPress 安裝 FTP 插件,配置 FTP 連接,然後使用文件管理器上傳源碼。步驟包括:安裝 FTP 插件、配置連接、瀏覽上傳位置、上傳文件、檢查上傳成功。

wordpress代碼怎麼複製wordpress代碼怎麼複製Apr 20, 2025 pm 12:00 PM

如何復制 WordPress 代碼?從管理界面複製:登錄 WordPress 網站,導航到目標位置,選擇代碼並按 Ctrl C (Windows)/Command C (Mac) 複製代碼。從文件複製:使用 SSH 或 FTP 連接到服務器,導航到主題或插件文件,選擇代碼並按 Ctrl C (Windows)/Command C (Mac) 複製代碼。

wordpress出現錯誤怎麼辦wordpress出現錯誤怎麼辦Apr 20, 2025 am 11:57 AM

WordPress 錯誤解決指南:500 內部服務器錯誤:禁用插件或檢查服務器錯誤日誌。 404 未找到頁面:檢查 permalink 並確保頁面鏈接正確。白屏死機:增加服務器 PHP 內存限制。數據庫連接錯誤:檢查數據庫服務器狀態和 WordPress 配置。其他技巧:啟用調試模式、檢查錯誤日誌和尋求支持。預防錯誤:定期更新 WordPress、僅安裝必要插件、定期備份網站和優化網站性能。

wordpress怎麼關閉評論wordpress怎麼關閉評論Apr 20, 2025 am 11:54 AM

如何在 WordPress 中關閉評論?特定文章或頁面:在編輯器中取消選中“討論”下的“允許評論”。整個網站:在“設置”->“討論”中取消選中“允許發表評論”。使用插件:安裝 Disable Comments 等插件禁用評論。編輯主題文件:通過編輯 comments.php 文件移除評論表單。自定義代碼:使用 add_filter() 函數禁用評論。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版