Cum activezi un plugin prin PHPMyAdmin sau FTP?
Tocmai am dezactivat un plugin pe site-ul meu și acum îmi afișează temutul ecran alb al morții. Știu că site-ul va funcționa din nou dacă reactivez plugin-ul.
Există vreo modalitate de a activa manual un plugin prin PHPMyAdmin sau prin FTP?

Am rezolvat această problemă accesând PHPMyAdmin la tabela "Options" și apoi la rândul active_plugins
.
Aveam următoarele informații stocate acolo (formatate pentru lizibilitate):
a:10:{
i:0;s:49:"1and1-wordpress-wizard/1and1-wordpress-wizard.php";
i:1;s:29:"acf-repeater/acf-repeater.php";
i:2;s:30:"advanced-custom-fields/acf.php";
i:3;s:45:"limit-login-attempts/limit-login-attempts.php";
i:4;s:27:"redirection/redirection.php";
i:6;s:33:"w3-total-cache/w3-total-cache.php";
i:7;s:41:"wordpress-importer/wordpress-importer.php";
i:8;s:24:"wordpress-seo/wp-seo.php";
i:9;s:34:"wpml-string-translation/plugin.php";
i:10;s:38:"wpml-translation-management/plugin.php";
}
Am adăugat o nouă linie (pentru plugin-ul lipsă) și am incrementat a:10
la a:11
pentru a indica că acum există 11 elemente în array:
a:11:{
i:0;s:49:"1and1-wordpress-wizard/1and1-wordpress-wizard.php";
i:1;s:29:"acf-repeater/acf-repeater.php";
i:2;s:30:"advanced-custom-fields/acf.php";
i:3;s:45:"limit-login-attempts/limit-login-attempts.php";
i:4;s:27:"redirection/redirection.php";
i:5;s:40:"sitepress-multilingual-cms/sitepress.php";
i:6;s:33:"w3-total-cache/w3-total-cache.php";
i:7;s:41:"wordpress-importer/wordpress-importer.php";
i:8;s:24:"wordpress-seo/wp-seo.php";
i:9;s:34:"wpml-string-translation/plugin.php";
i:10;s:38:"wpml-translation-management/plugin.php";
}
i:
pare a fi numărul item-ului, iar datorită comentariului lui JHoffmann, s:
pare a fi lungimea șirului care urmează.
Site-ul funcționează acum ca înainte!

s
reprezintă șir de caractere (string), iar numărul care urmează indică lungimea acestuia.

@JHoffmann Mulțumesc pentru informație! Am actualizat răspunsul meu. Poți să-mi spui unde ai învățat asta? Există vreo resursă bună care explică astfel de lucruri? Mulțumesc.

i
reprezintă de fapt o valoare întreagă (integer), s
înseamnă șir de caractere (string), iar numărul de lângă s
indică lungimea șirului.

@PieterGoosen Aceeași întrebare și pentru tine: Unde ai învățat asta? Există vreo resursă pe undeva?

Acelea sunt date serializate. Nu am o sursă exactă, dar poți să te uiți în direcția datelor serializate. Poți să te uiți și la JSON, deoarece acolo se folosesc mai mult date serializate

@DjangoReinhardt După cum a spus Pieter Goosen, acestea sunt date serializate, așa cum sunt generate de funcția serialize din PHP. În WordPress există și o funcție wrapper numită maybe_serialize

Aș dori să standardizeze numele fișierului pluginului care declară pluginul în sine. Lucrez la scrierea unui script care va descărca, instala și activa automat pluginurile. Aceasta este piesa lipsă!

Actualizarea acelei valori direct în tabela bazei de date a determinat ca toate pluginurile mele să fie dezactivate. După ce am făcut asta, trebuie să activez din nou toate pluginurile prin interfața de administrare WordPress. Mă întreb ce anume determină dezactivarea pluginurilor după actualizarea valorii opțiunii 'active_plugins'.

Susțin, a funcționat exact cum este descris pentru mine. Interesant, se pare că valorile i:
nu trebuie să fie consecutive... Am avut a:40
și apoi numerele i
au mers de la 0 la 38, iar ultimul a fost 40, nu a existat 39. Am schimbat a:
la 41 și am adăugat noul meu plugin la final cu i:41
și a funcționat perfect.

//Folosind acest cod poți activa un plugin din fișierul functions.php
function activate_plugin_via_php() {
$active_plugins = get_option( 'active_plugins' ); // Obține lista plugin-urilor active
array_push($active_plugins, 'unyson/unyson.php'); /* Înlocuiește aici directorul și fișierul plugin-ului unyson cu cele ale plugin-ului dorit */
update_option( 'active_plugins', $active_plugins ); // Actualizează lista plugin-urilor active
}
add_action( 'init', 'activate_plugin_via_php' ); // Adaugă acțiunea la inițializare

poți de asemenea să adaugi un if(!in_array('unyson/unyson.php',$active_plugins)) pentru a te asigura că nu este adăugat de mai multe ori

Unde pot găsi fișierul functions.php
? Este în directorul temei sau în wp-includes
?

Simt că, deși răspunsul marcat ca corect funcționează, acesta ar trebui să fie cel marcat corect, deoarece este realizat complet din interiorul WordPress, nu implică manipularea directă a bazei de date și, în general, este mai puțin probabil să producă erori. functions.php
se află în directorul temei, de obicei ar trebui să creați o temă copil și să-l editați acolo, deoarece functions.php
din tema părinte își va pierde modificările la următoarea actualizare a temei.

O altă soluție pentru o abordare diferită care ar putea fi utilă cuiva în viitor. De asemenea, puteți muta folderul pluginului în folderul Must Use (pe care probabil va trebui să-l creați dacă nu a fost folosit până acum). Calea este de obicei:
wp-content/mu-plugins
Pluginurile din acest folder vor rula întotdeauna. Consultați următoarea resursă pentru mai multe informații:
https://codex.wordpress.org/Must_Use_Plugins
Notă: Singurul lucru de luat în considerare este că aceste pluginuri sunt încărcate înaintea celorlalte din folderul de pluginuri. De asemenea, consultați limitările din linkul de mai sus, deoarece pot exista alte probleme care ar putea împiedica funcționarea corectă a pluginului dumneavoastră.

Mi-a salvat viața pe un site vechi de 5 ani, creat de alt dezvoltator, care a instalat 2 plugin-uri dependente unul de celălalt și pe care am dezactivat accidental unul dintre ele.

Puteți pur și simplu să redenumiți folderul pluginului, de exemplu:
"_aksimet"
pentru a-l dezactiva
apoi înapoi la
"aksimet"
pentru a-l reactiva (dacă era activ)
Puteți face acest lucru pentru toate folderele de "plugins" împreună.
Alternativ, puteți accesa MySQL și urmați acest ghid pas cu pas, pe scurt:
- MYSQL >
wp_options
- căutați intrarea
active_plugins
(ambele etape pot fi realizate prinSELECT * FROM wp_options WHERE option_name = 'active_plugins';
) - apoi scrieți pluginul vostru acolo așa cum sunt scrise celelalte pluginuri (
i
este indexul,s
este pentru lungimea șirului).
Sper că vă ajută

Mulțumesc. Am încercat să dezactivez și se pare că codul pentru acest plugin este prea integrat pe întreg site-ul. Am nevoie de o modalitate să-l reactivez :(

Ce vrei să spui prin asta? Pentru reactivare, pur și simplu redenumește-l înapoi. Ai întâmpinat vreo eroare sau ceva de genul?

Plugin-ul a fost dezactivat prin interfața WP Admin. După dezactivare, nu am mai putut accesa site-ul meu. Nu a fost nimic de "redenumit" deoarece nu l-am dezactivat prin redenumire via FTP.
