Cómo añadir plugins a un tema de WordPress

2 sept 2011, 08:35:03
Vistas: 19K
Votos: 6

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..

1
Comentarios

posible duplicado de Agregar Plugins al Tema de Wordpress

Chip Bennett Chip Bennett
2 sept 2011 15:40:22
Todas las respuestas a la pregunta 2
2

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 :).

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.

2 sept 2011 10:35:47
Comentarios

"durante la inicialización del tema" <- ¿cómo puedo hacer esto?

Anh-Thi DINH Anh-Thi DINH
16 feb 2019 13:47:42

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

Ján Bočínec Ján Bočínec
21 feb 2019 12:15:32
0

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.

2 sept 2011 09:22:53