Cum să adaug pluginuri la o temă WordPress?

2 sept. 2011, 08:35:03
Vizualizări: 19K
Voturi: 6

Am planuit să dezvolt teme WordPress comercial.. Vreau să știu metoda cea mai ușoară de a adăuga pluginuri la tema WordPress pe care o dezvolt.. Poate cineva să-mi sugereze pașii simpli.. și am nevoie de metode posibile pe care le pot folosi eficient..

1
Comentarii

posibil duplicat al Adăugarea de Plugin-uri la Tema Wordpress

Chip Bennett Chip Bennett
2 sept. 2011 15:40:22
Toate răspunsurile la întrebare 2
2

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

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.

2 sept. 2011 10:35:47
Comentarii

"în timpul inițializării temei" <- cum pot face asta?

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

@Anh-ThiDINH Sugerez utilizarea hook-ului 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

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.

2 sept. 2011 09:22:53