Cum să faci WordPress greu pentru clienți să încurce

Publicat: 2022-03-10
Rezumat rapid ↬ WordPress este un CMS minunat de puternic, care este livrat cu multe funcții versatile, oferindu-i flexibilitatea de a lucra din nou pentru o gamă largă de utilizatori. Cu toate acestea, dacă sunteți un profesionist care construiește teme și pluginuri personalizate, uneori aceste caracteristici pot fi problematice. Aceleași caracteristici și opțiuni care permit temelor standard să se adapteze la multe cazuri de utilizare diferite pot fi uneori folosite pentru a submina o temă personalizată atent proiectată, creată pentru un anumit caz de utilizare.

WordPress este un CMS extraordinar de puternic, care este livrat cu multe funcții versatile, oferindu-i flexibilitatea de a lucra din nou pentru o gamă largă de utilizatori. Cu toate acestea, dacă sunteți un profesionist care construiește teme și pluginuri personalizate, uneori aceste caracteristici pot fi problematice. Aceleași caracteristici și opțiuni care permit temelor standard să se adapteze la multe cazuri de utilizare diferite pot fi uneori folosite pentru a submina o temă personalizată atent proiectată, creată pentru un anumit caz de utilizare.

Următorul articol cuprinde o colecție de fragmente de cod pe care le folosesc din nou și din nou în aproape fiecare proiect WordPress. Ceea ce au toate în comun este că limitează funcționalitatea care este fie inutilă, confuză sau nesigură. Tot ceea ce urmează poate fi folosit pe orice site, dar aceste sfaturi sunt aplicabile în special profesioniștilor care creează teme și plugin-uri personalizate pentru clienți.

Citiți suplimentare despre SmashingMag:

  • Cum să creați și să personalizați o temă pentru copii WordPress
  • Scrierea documentației eficiente pentru utilizatorii finali WordPress
  • Limitarea vizibilității postărilor din WordPress prin nume de utilizator
  • Utilizarea rolurilor de utilizator în WordPress

Distincția notabilă este că temele personalizate pot fi create pentru a servi unui anumit scop. Deci spațiile libere pentru conținutul autorilor pot și ar trebui să fie, de asemenea, mult mai înguste. O temă WordPress bine concepută ar trebui să ia cât mai multe decizii de design posibil, astfel încât autorul să nu fie nevoit.

Mai multe după săritură! Continuați să citiți mai jos ↓

Dezactivați pluginurile și editorul de teme

Nu există niciun motiv întemeiat pentru care cineva ar trebui să editeze în direct tema personalizată sau fișierele plugin prin intermediul tabloului de bord WordPress. Profesioniștii nu funcționează așa, iar mugglei de obicei nu își dau seama cât de ușor este să spargi un site omitând un singur punct și virgulă. Este, de asemenea, o vulnerabilitate de securitate pe care hackerii o pot exploata. Din fericire, prietenii noștri de la WordPress.org au făcut foarte ușor să dezactivezi această funcție. Pur și simplu adăugați următorul fragment în fișierul wp-config.php .

 define( 'DISALLOW_FILE_EDIT', true );

Pe lângă editorul de teme, acest lucru va dezactiva și editorul de pluginuri. Consider aceasta o caracteristică, nu o eroare.

Editor de pluginuri Wordpress
Editor de pluginuri Wordpress. (Vezi versiunea mare)

Limitați editorul vizual și text

În mod implicit, editorul WYSIWYG WordPress acceptă mult prea multe opțiuni de formatare pentru o temă personalizată bine concepută. Permiterea clienților să înlocuiască culorile textului sau dimensiunile fonturilor este o modalitate rapidă de a face chiar și cel mai șic site să arate ieftin și urât. Dacă textul postării de blog este conceput să fie întotdeauna aliniat la stânga, de ce să-i dai autorului un buton pentru al alinia la dreapta? Crezi că va arăta bine dacă textul de pe pagina Despre este violet, aldin și italicizat? Atunci nu-ți înarma clientul cu mijloacele necesare pentru a o face. În majoritatea situațiilor, recomand dezactivarea completă a editorului vizual.

Pagina de tipografie urâtă
Pagina de tipografie urâtă. (Vezi versiunea mare)

Dezactivarea editorului vizual

Adăugați următorul fragment în fișierul functions.php al temei și fila pentru a comuta editorul WYSIWYG va dispărea.

 function emersonthis_disable_visual_editor(){ # add logic here if you want to permit it selectively return false; } add_filter('user_can_richedit' , 'emersonthis_disable_visual_editor', 50);

Acesta este un început bun, dar veți observa că butoanele aldine și italice sunt încă prezente în editorul de text simplu. Din experiența mea, clienții abuzează de aceste butoane mult mai rar atunci când gratificarea instantanee a editorului WYSIWYG dispare. Dar tot prefer să le scot dacă nu sunt necesare.

Fila editor vizual
Fila editor vizual. (Vezi versiunea mare)

Eliminarea etichetelor rapide aldine și italice din editorul de text

Editorul de text are butoane de etichetare rapidă care vor împacheta textul selectat cu etichete <strong> și <em> . Adăugați următorul cod în fișierul functions.php al temei și autorii nu vor mai avea butoane aldine sau cursive.

 # Removes bold and italic quicktags from text editor function emersothis_quicktags_settings( $qtInit ) { //To disable ALL butons it must be set to "," (not "") $qtInit['buttons'] = 'more,'; return $qtInit; } add_filter('quicktags_settings', 'emersonthis_quicktags_settings');

Acest lucru elimină posibilitatea ca clientul dvs. să decidă, să zicem, să pună în italice un întreg articol. Dar acest lucru nu înlătură capacitatea de a scrie manual markup în editorul de text. Din când în când, acest lucru vă poate fi util atunci când vă aflați în situații dificile.

Dacă vă aflați într-o situație rară în care utilizatorul ar trebui să formateze textul, puteți lăsa editorul vizual activat, dar dezactivați anumite butoane individual.

Dezactivarea butoanelor din editorul vizual

Una dintre puținele ori când las editorul vizual activat este atunci când autorii scriu postări lungi sau pagini care au o structură internă proprie. De exemplu, un autor al unui articol de 10 pagini ar putea avea nevoie de capacitatea de a adăuga subtitluri. În aceste situații am configurat clase personalizate pentru subsecțiuni și apoi dezactivez toate celelalte butoane de formatare care nu sunt necesare.

API-ul WordPress pentru modificarea editorului TinyMCE este puțin complicat, deoarece trebuie să căutați numele de cod folosite pentru a face referire la fiecare buton pe care doriți să îl eliminați. Obțineți cel mai mult profit prin eliminarea butonului „chiuvetă de bucătărie” care comută întregul al doilea rând care conține cele mai problematice butoane de formatare. Adăugarea următorului cod la fișierul functions.php al temei va face acest lucru.

 # Remove visual editor buttons function emersonthis_tinymce_buttons($buttons) { # Remove the text color selector $remove = array('wp_adv'); //Add other button names to this array # Find the array key and then unset return array_diff($buttons,$remove); } add_filter( 'mce_buttons', 'emersonthis_tinymce_buttons' );

Un truc pentru a afla numele de cod al butonului pe care doriți să-l eliminați este să inspectați marcajul formularului. În momentul scrierii, fiecare buton are un nume de clasă care începe cu mce-i- urmat de numele de cod pe care l-ați pune în matricea de mai sus.

Eliminați butonul „Adăugați conținut media”.

Butonul „Adăugați conținut media” apare în mod implicit ori de câte ori un tip de postare personalizat acceptă funcția de editor. Dar tipurile de postări personalizate pot fi folosite pentru o gamă largă de lucruri și adesea este inadecvat ca acel câmp să includă imagini.

Postare pe blog plină de imagini urâte
Postare pe blog plină de imagini urâte. (Vezi versiunea mare)

De cele mai multe ori, când mă aștept ca autorul să publice o imagine care să însoțească textul, folosesc miniaturile postărilor (alias imaginile prezentate). Acest lucru facilitează integrarea imaginilor în șabloanele de teme și, de asemenea, oferă dezvoltatorului mai mult control asupra dimensiunii și specificațiilor pentru imagini.

Fotografiile ad-hoc încorporate folosind butonul „Adăugați conținut media” din editor sunt greu de controlat și au tendința de a arăta ciudat, în funcție de locul în care autorul inserează imaginea în raport cu textul din jur. De asemenea, provoacă confuzie pentru mulți autori, deoarece, dintr-o privire, butonul „Adăugați media” este ușor confundat cu butonul de încărcare „Imagine recomandată” care apare mai jos în pagină (în mod implicit) și poate fi folosit foarte diferit de temă. Îl elimin aproape întotdeauna, adăugând următorul cod în fișierul functions.php al temei.

 # Remove media buttons function emersonthis_remove_add_media(){ # do this conditionally if you want to be more selective remove_action( 'media_buttons', 'media_buttons' ); } add_action('admin_head', 'emersonthis_remove_add_media');

Puteți adăuga logică înainte de remove_action() pentru a elimina condiționat numai butonul media pentru anumite tipuri de postări. De exemplu, ați putea dori să lăsați autorii să adauge imagini în pagini, dar nu postări de blog care folosesc în schimb miniaturi.

Dezactivați opțiunile de personalizare a temei

Dacă lucrați la o temă copil, tema părinte poate oferi opțiuni de personalizare nepotrivite pentru copil. Opțiunile de personalizare pot fi neutilizate în tema copilului sau pot avea potențialul de a distruge lucrurile. Oricum, API-ul de personalizare a temei WordPress facilitează eliminarea lor adăugând următorul fragment în fișierul functions.php al temei.

 # Remove customizer options. function emersonthis_remove_customizer_options( $wp_customize ) { // $wp_customize->remove_section( 'static_front_page' ); // $wp_customize->remove_section( 'title_tagline' ); $wp_customize->remove_section( 'colors' ); $wp_customize->remove_section( 'header_image' ); $wp_customize->remove_section( 'background_image' ); // $wp_customize->remove_section( 'nav' ); // $wp_customize->remove_section( 'themes' ); // $wp_customize->remove_section( 'featured_content' ); // $wp_customize->remove_panel( 'widgets' ); } add_action( 'customize_register', 'emersonthis_remove_customizer_options', 30);

Fiecare linie din fragmentul de mai sus corespunde unei opțiuni individuale de personalizare a temei pe care o puteți dezactiva prin anularea comentariului.

Ascundeți elementele neutilizate din meniul tabloului de bord

Nu toate site-urile au aceleași tipuri de conținut; unele site-uri nu au blog, de exemplu. Dacă aplicăm aceeași logică pe tabloul de bord WordPress pe care o aplicăm oricărei alte interfețe cu utilizatorul, este confuz și inutil să afișăm butoane care nu fac nimic. În acest exemplu, elementul de meniu Postări ar fi inutil, așa că haideți să-l eliminăm adăugând următorul fragment la functions.php :

 function emersonthis_custom_menu_page_removing() { // remove_menu_page( 'index.php' ); //Dashboard // remove_menu_page( 'jetpack' ); //Jetpack* remove_menu_page( 'edit.php' ); //Posts remove_menu_page( 'upload.php' ); //Media // remove_menu_page( 'edit.php?post_type=page' ); //Pages remove_menu_page( 'edit-comments.php' ); //Comments // remove_menu_page( 'themes.php' ); //Appearance // remove_menu_page( 'plugins.php' ); //Plugins // remove_menu_page( 'users.php' ); //Users // remove_menu_page( 'tools.php' ); //Tools // remove_menu_page( 'options-general.php' ); //Settings } add_action( 'admin_menu', 'emersonthis_custom_menu_page_removing' );

Fiecare linie corespunde unui meniu specific din tabloul de bord. Numele fișierelor nu se potrivesc întotdeauna cu numele care apare în meniul tabloului de bord, așa că rândurile comentate sunt lăsate ca referință rapidă.

Meniul Postări apare implicit indiferent dacă site-ul are sau nu un blog
Elementul de meniu Postări apare implicit indiferent dacă site-ul are sau nu un blog. (Vezi versiunea mare)
06-postări-meniu-ascuns-previzualizare-opt
Tabloul de bord WordPress fără elementul de meniu Postări. (Vezi versiunea mare)

Este important să înțelegeți că eliminarea acestor elemente de meniu nu revocă de fapt permisiunile utilizatorului. Un utilizator poate accesa în continuare elementul de meniu ascuns direct folosind adresa URL. Dacă scopul este de a face tabloul de bord mai puțin aglomerat prin ascunderea controalelor de prisos, atunci probabil că este bine. Dacă scopul este de a împiedica de fapt un utilizator să acceseze aceste controale, atunci va trebui să modificați capabilitățile rolului utilizatorului. Pentru a realiza acest lucru, adăugați un fragment ca următorul la cârligul de activare al unui plugin (trebuie să ruleze o singură dată):

 global $wp_roles; // global class $role = 'author'; $cap = 'delete_published_posts'; $wp_roles->remove_cap( $role, $cap );

Utilizați acest tabel cuprinzător cu toate capabilitățile pentru a găsi capabilitățile specifice pe care le puteți adăuga sau elimina pentru fiecare dintre rolurile implicite.

Adăugați un indiciu despre cum funcționează întreruperile de linie în editor

În mod implicit, editorul vizual (TinyMCE) va crea un nou paragraf atunci când autorul apasă pe Return . Dacă doriți doar o întrerupere de linie de modă veche (aka retur car) trebuie să apăsați Shift+Return . Acest lucru este ingenios și puternic, dar nu intuitiv pentru mulți autori. Am început să adaug un memento rapid pentru a evita inevitabila plângere despre „o grămadă de spații albe ciudate” care apar într-o postare sau într-o pagină.

Postare pe blog cu un spațiu alb în plus
Postare pe blog cu un spațiu alb în plus. (Vezi versiunea mare)

Adăugați următorul fragment în fișierul functions.php . Schimbați valoarea $tip pentru a spune orice doriți să le amintiți autorilor.

 # Adds instruction text after the post title input function emersonthis_edit_form_after_title() { $tip = '<strong>TIP:</strong> To create a single line break use SHIFT+RETURN. By default, RETURN creates a new paragraph.'; echo '<p>'.$tip.'</p>'; } add_action( 'edit_form_after_title', 'emersonthis_edit_form_after_title' );

Această tehnică poate fi folosită pentru a injecta un memento despre orice doriți ca autorii să-și amintească atunci când adaugă sau editează conținut.

Adăugată o pagină de postări cu spații albe
Pagină de postări cu vârf de spațiu alb adăugat. (Vezi versiunea mare)

Nu distribuiți conturi de administrator

Rolul de administrator WordPress este foarte puternic și cu o mare putere vine o mare responsabilitate. Unii clienți sunt utilizatori experimentați de WordPress care își administrează site-ul în mod competent. Mulți dintre ei nu sunt. Aceștia din urmă nu ar trebui să caute ca administratori. În schimb, fă-le editor și creează un cont de administrator separat cu o parolă super puternică. Dacă aveți o afiliere continuă cu clientul, vă puteți păstra acele acreditări până când clientul este gata să administreze singur site-ul.

Lista de utilizatori plină de administratori
Lista de utilizatori plină de administratori. (Vezi versiunea mare)

Alternativ, oferiți clientului ambele seturi de acreditări și puneți-le să stocheze acreditările de administrator într-un loc sigur și să le folosească numai pentru a efectua sarcini de administrator. Mulți clienți vor pierde imediat acreditările de administrator, dar asta este în regulă: parola poate fi întotdeauna resetată, iar acestea sunt adesea tipurile de clienți care vă vor reangaja oricum pentru a face întreținerea de rutină a site-ului pentru ei.

Cel mai important motiv pentru a fi zgârcit cu conturile de administrator este că acestea reprezintă o vulnerabilitate de securitate. Un efect secundar plăcut este că utilizatorii WordPress începători consideră adesea că interfața de utilizare a tabloului de bord este mai puțin copleșitoare atunci când se conectează ca autori sau editori, deoarece există mai puține meniuri de sortat în timp ce învață abilități de bază, cum ar fi adăugarea sau editarea postărilor.

Utilizați mu-Plugins

Directorul mu-plugins/ există de mult timp, dar majoritatea hackerilor WordPress pe care îi întâlnesc nu au auzit niciodată de el. „mu” înseamnă utilizarea obligatorie . Directorul este o locație alternativă în care pot fi instalate pluginuri.

Trebuie să utilizați interfața de pluginuri în tabloul de bord Wordpress
Trebuie să utilizați interfața pluginurilor în tabloul de bord WordPress. (Vezi versiunea mare)

Diferența este că pluginurile „de utilizare obligatorie” sunt active automat și nu pot fi dezactivate accidental în întregul tablou de bord. De asemenea, sunt încărcate înaintea celorlalte plugin-uri. Acest lucru este ideal pentru pluginurile care trebuie să fie prezente pentru ca site-ul să ruleze corect. Este, de asemenea, o alternativă excelentă pentru hack-urile non-prezentative care, în mod normal, s-ar putea bloca în fișierul functions.php al temei tale personalizate. De exemplu, îmi place să definesc tipuri de postări personalizate într-un mu-plugin, deoarece acel conținut ar trebui să persistă indiferent dacă o anumită temă este activă sau nu.

Directorul mu-plugins/ nu există din cutie. Îl creați manual în wp-content/ .

 wp-content/ mu-plugins/ plugins/ themes/ ...

Cea mai mare limitare este că WordPress caută doar fișierele din nivelul superior al mu-plugin-urilor/ și va ignora codul dintr-un subdirector. Cu toate acestea, puteți rezolva acest lucru prin crearea unui singur fișier PHP în partea de sus a mu-plugins/ care încarcă cod dintr-un subdirector frate. De asemenea, rețineți că notificările de actualizare nu se aplică mu-plugin-urilor. Mă gândesc la mu-plugins/ ca locul în care să pun cod important la care clientul nu ar trebui să se gândească niciodată.

Citiți mai multe despre trebuie să utilizați pluginuri în Codex. Dacă doriți să solicitați alte pluginuri, împiedicând posibilitatea de a le dezactiva, s-ar putea să găsiți utilă biblioteca WDS-Required-Plugins.

Notă finală

S-ar putea să vi se pară contraintuitiv să dezactivați funcționalitatea pe care WordPress vi le oferă gratuit. Dar amintiți-vă că clientul dvs. nu vă plătește pentru a le oferi o mulțime de butoane. Sarcina ta este de a crea un site web eficient, robust, care este adaptat pentru a se potrivi obiectivelor clientului. Prin dezactivarea funcționalității problematice sau străine, oferiți de fapt mai multă valoare .

Dacă doriți mai multe fragmente, am creat un depozit public GitHub de fragmente WordPress utile care conține versiuni actualizate ale hackurilor de mai sus, precum și altele pe care le adaug periodic. Dacă aveți propriile fragmente la îndemână pe care doriți să le partajați, solicitările de extragere sunt mai mult decât binevenite!