Cum să adaug pluginuri la o temă WordPress?
Puteți include întotdeauna fișierele plugin-urilor în fișierul functions.php al temei. Desigur, ar trebui să le organizați într-o structură logică pentru a nu încărca tema cu prea multe fișiere și cod :).
- https://stackoverflow.com/questions/6974006/wordpress-package-plugin-with-theme
- Cum să includi un plugin într-o temă sau invers
Puteți folosi un cod ca acesta (folosit în tema Carrington) pentru a încărca toate plugin-urile din folderul "plugin" din directorul temei...
/**
* Încarcă plugin-urile temei
*
**/
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);
}
// suport pentru teme copil
if (file_exists(STYLESHEETPATH.'/plugins/'.$file)) {
include_once(STYLESHEETPATH.'/plugins/'.$file);
}
}
}
}
/**
* Obține o listă de fișiere php dintr-un anumit path precum și fișierele din temele copil corespunzătoare
*
* @param string $path Calea către directorul de căutat
* @return array Fișierele din directorul specificat
*
**/
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) {
// încarcă fișierele din tema copil
$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;
}
...apoi folosiți funcția cfct_load_plugins();
în timpul inițializării temei.

@Anh-ThiDINH Sugerez utilizarea hook-ului after_setup_theme
https://codex.wordpress.org/Plugin_API/Action_Reference/after_setup_theme

Cea mai simplă soluție este să folosești plugin-uri normale WordPress ^^. Scrierea unui sistem de plugin-uri specializat pentru tema ta personală este pur și simplu inutil, face tema ta mai încărcată și crește costurile de dezvoltare și întreținere. În acest caz, principiul KISS (Keep It Simple, Stupid) câștigă.
Cu stimă,
Hai
Un alt aspect de luat în considerare atunci când înlocuiești plugin-uri cu metode personalizate ar fi actualizările. Multe actualizări de plugin-uri au ca scop rezolvarea problemelor de securitate sau remedierea problemelor cauzate de actualizările WordPress.
