Pues lo que te puedo recomendar es que crees clases independientes, que serían los plugins. Tienes que hacerlas muy bien como unidad(exahustivas pruebas unitarias), después integrarlas será cosa sencilla.
Por ejemplo:
CarpetaPlugins/PluginDano.php
Código :
class PluginDano{
function PluginDano( $objLogin ){
$objLogin = $objLogin." con plugin";
}
}
// Verificamos que el usuario este logueado, y le añadimos nuestro plugin
if( isset($_SESSION["login_name"]) )
$attachPlug = new PluginDano($_SESSION["login_name"]);
En el motor de carga de nuestro CMS, al final podríamos agregar:
Código :
path = "CarpetaPlugins";
funcionLeeArchivosEnCarpeta(path);
No es la solución solo es un planteamiento, no conozco el sistema de WordPress, a decir verdad no he usado CMS hechos. Pero bueno, en los CMS que he desarrollado, utilice una técnica similar. El punto es que un plugin, es un agregado, pero el sistema CMS debe funcionar, con o sin plugins.
Saludos y suerte!