不久前我也有同样的问题,不幸的是,目前在WordPress主题或插件中进行MVC的唯一方法就是扮演自己的角色。
这就是我所做的,几个月来我一直在插件和主题中使用它。您可以在github上查看源代码:https://github.com/philipwalton/PW_Framework它被称为PW\\U框架,它松散地基于Yii框架,这是一个非常好的PHP MVC框架。
PW\\U框架的核心是一种快速简便的方法,可以创建选项页面,并完成客户端和服务器端验证。它处理ajax验证以及所有WordPress安全问题(如nonce),因此您可以将开发工作重点放在插件的实际功能上。
您只需使用属性、属性标签、描述和选项定义模型:
public function data()
{
return array(
\'name\' => array(
\'label\' => \'Name\',
\'default\' => \'\',
),
\'email\' => array(
\'label\' => \'E-mail\',
\'default\' => \'\',
),
\'sex\' => array(
\'label\' => \'Sex\',
\'default\' => \'male\',
\'options\' => array( \'m\' => \'Male\', \'f\' => \'Female\'),
),
);
}
然后定义验证规则:
protected function rules() {
return array(
array(
\'properties\' => \'name, email, sex\',
\'validator\'=> array(\'PW_Validator\', \'required\'),
),
array(
\'properties\' => \'email\',
\'validator\'=> array(\'PW_Validator\', \'email\')
),
array(
\'properties\' => \'sex\',
\'validator\'=> array(\'PW_Validator\', \'match\'),
\'pattern\' => \'/^m|f$/\'
),
);
}
视图看起来像这样:
<?php $form = new PW_Form( $model ); ?>
<?php $form->begin_form(); ?>
<?php $form->begin_section(\'Year Options\'); ?>
<ul>
<li><?php $form->textfield( \'name\' ); ?></li>
<li><?php $form->textfield( \'email\' ); ?></li>
<li><?php $form->radio_button_list( \'sex\' ); ?></li>
</ul>
<?php $form->end_section(); ?>
<?php $form->end_form(); ?>
然后在控制器中,只需编写所有代码功能。
以下是现场使用的it工作示例:http://wordpress.org/extend/plugins/pw-archives