Cómo añadir plugins a un tema de WordPress
Planeo desarrollar temas de WordPress comercialmente.. Solo quiero saber el método más sencillo para añadir plugins a mi tema de WordPress que estoy desarrollando.. ¿Alguien puede sugerirme los pasos sencillos? Y necesito los métodos posibles que pueda usar efectivamente..
Siempre puedes incluir los archivos de los plugins en tu archivo functions.php del tema. Por supuesto, deberías colocarlos en una estructura razonable para no saturar tu tema con archivos y código :).
- https://stackoverflow.com/questions/6974006/wordpress-package-plugin-with-theme
- Cómo empaquetar un plugin con un tema, o viceversa
Puedes usar código como este (utilizado en el tema Carrington) para cargar todos los plugins incluidos en la carpeta "plugin" dentro de tu carpeta del tema...
/**
* Cargar plugins del tema
*
**/
function cfct_load_plugins() {
$files = cfct_files(CFCT_PATH.'plugins');
if (count($files)) {
foreach ($files as $file) {
if (file_exists(CFCT_PATH.'plugins/'.$file)) {
include_once(CFCT_PATH.'plugins/'.$file);
}
// soporte para temas hijos
if (file_exists(STYLESHEETPATH.'/plugins/'.$file)) {
include_once(STYLESHEETPATH.'/plugins/'.$file);
}
}
}
}
/**
* Obtener una lista de archivos php dentro de una ruta dada, así como archivos en temas hijos correspondientes
*
* @param string $path Ruta al directorio a buscar
* @return array Archivos dentro del directorio de la ruta
*
**/
function cfct_files($path) {
$files = apply_filters('cfct_files_'.$path, false);
if ($files) {
return $files;
}
$files = wp_cache_get('cfct_files_'.$path, 'cfct');
if ($files) {
return $files;
}
$files = array();
$paths = array($path);
if (STYLESHEETPATH.'/' != CFCT_PATH) {
// cargar archivos del tema hijo
$paths[] = STYLESHEETPATH.'/'.str_replace(CFCT_PATH, '', $path);
}
foreach ($paths as $path) {
if (is_dir($path) && $handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
$path = trailingslashit($path);
if (is_file($path.$file) && strtolower(substr($file, -4, 4)) == ".php") {
$files[] = $file;
}
}
closedir($handle);
}
}
$files = array_unique($files);
wp_cache_set('cfct_files_'.$path, $files, 'cfct', 3600);
return $files;
}
...luego usas la función cfct_load_plugins();
durante la inicialización del tema.

@Anh-ThiDINH Te sugiero usar el hook after_setup_theme
https://codex.wordpress.org/Plugin_API/Action_Reference/after_setup_theme

La solución más sencilla es simplemente usar los plugins normales de WordPress ^^. Escribir un sistema de plugins especializado para tu propio tema es totalmente innecesario, hace que tu tema sea más pesado y aumenta los costos de desarrollo y mantenimiento. En este caso, el principio KISS (Keep It Simple, Stupid) gana.
Saludos,
Hai
Otro punto a considerar al reemplazar plugins con métodos personalizados serían las actualizaciones. Muchas actualizaciones de plugins son para abordar problemas de seguridad o para resolver problemas causados por actualizaciones de WordPress.
