Posts Under: Wordpress Tips & Tricks

Cum se pot elimina paragrafele de la imagini

decembrie 4, 2014 Tutoriale Wordpress, Wordpress Tips & Tricks no comments

O problemă des întâlnită de dezvoltatorii de teme WordPress o reprezintă setările implicite. Una, mai ales, e tare neplăcută. La adăugarea unei imagini automat în jurul ei se pune un paragraf, fără clasă, fără id ca să te poți lega de ceva.

<p><img src="imagine.jpg" alt="" /></p>

eliminarea acestui paragraf se poate face din functions.php folosind o metodă simplă și un filtru pe content:


function filter_paragraph_img($content){
return preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
}
add_filter('the_content', 'filter_paragraph_img');

Rezultă o imagine adăugată direct între paragrafele de text. Simplu și eficient.

Cum poți redenumi WP-CONTENT

noiembrie 21, 2012 Wordpress Tips & Tricks no comments

wp-super-dogsUnora le place WordPress-ul, altora nu. Unii zic că WordPress e un blog, alții că e un CMS. WordPress este un CMS care a avoluat foarte mult de la lansare ajungând astăzi să se bată de la egal la egal cu Drupal și Joomla.

Mai jos e un mic truc prin care puteți redenumi WP-Content în orice altceva și astfel amatorii de cărcoteală nu vor ști ce CMS s-a utilizat.

Observații:
– tipul cms-ului se poate afla urmărind structura de fișiere, această ascundere este pentru amatori
– de asemenea un programator poate vedea numele pluginurilor și nu e greu de dedus ce CMS se folosește
– pentru a ascunde informații despre WP trebuie șters și meta generator din head
– la fiecare update de versiune trebuie refăcuți pașii de mai jos
– unele pluginuri trebie modificate manual

Suficiente probleme ca să mă facă să spun: dacă utilizezi WordPress, utilizează WordPress cu drag 🙂

Modificarea numelui folderului wp-content:

1. editați wp-config din root-ul site-ului

2. înainte de ultima linie adăugați directivele:

define('WP_CONTENT_FOLDERNAME', 'nume-wp-content-nou');
define('WP_CONTENT_DIR', ABSPATH . WP_CONTENT_FOLDERNAME );
define('WP_CONTENT_URL', 'http://domeniul.tau/'.WP_CONTENT_FOLDERNAME);
define('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' );
define('WP_PLUGIN_URL', WP_CONTENT_URL.'/plugins');

3. “nume-wp-content-nou” este numele nou al directorului wp-content

4. modificați și numele folderului

Aceste modificări este bine să fie făcute la început, deoarece în wp-content/uploads si wp-content/gallery o sa aveți imagini și deci url-uri mai greu de schimbat. Dacă aveți sistem de cache, dezactivați cache-ul, ștergeți cache-ul și reactivați.

Cum poți îmbunătății încărcarea site-ului WordPress

noiembrie 19, 2012 Wordpress Tips & Tricks 4 comments

Viteza de încărcare a site-ul are un efect enorm asupra SEO. Trebuie făcut tot ce este posibil pentru a mări viteza de încărcare, astfel încât motoarele de căutare să noteze cât mai bine site-ului (din punct de vedere tehnic, bineînțeles), să-l indexeze cât mai repede, fapte ce vor fi răsplătite prin trimiterea de mai mulți vizitatori.

De asemenea, ratele de conversie sunt mult mai mari pentru site-urile care se încarcă mai repede decât concurenții lor mai lenți.

Sunt trei mari metode de creștere a rapidității încărcării. In general sunt tratate unitar, însă eu le voi împărți pentru a le urma mai ușor:

1. metode ce țin de organizare, bine specificate și pe WordPress.org, doar le reiau:

– verificați pluginurile instalate, majoritatea pluginurilor adaugă fișiere css și js, cel puțin câte unul dacă nu mai multe, fișiere ce îngreunează încărcarea, foarte mult. Așa că dezinstalați ce nu folosiți sau chiar ștergeți. Un plugin prost instalat sau prost scris sau inutil va fi ca o ancoră pentru site, multe ancore egal încărcare lentă a site-ului.

– aveți grijă la dimensiunile imaginilor încărcate și la calitatea lor. Dacă imaginea nu este pentru download nu are sens să fie mai mare de 800px lățime. Dacă nu aveți acces la cod, la codul temei instalate, încercați să urcați imaginile cât mai mici, de dimensiunea maxim afișată. Dacă aveți acces, încercați să vă definiți dimensiunile folosite în functions.php folosind “add_image_size“. Pare complicat, dar în fapt este foarte ușor de folosit.

– folosiți pluginul Wp Smush.it pentru optimizarea imaginilor

– folosiți un singur fișier de css, un singur fișier de js

– nu puneți cod style în html

– dacă aveți acces la codul temei, încercați să scrieți în clar cât mai multe elemente, astfel încât să reduceți interogările. Exemple:

Ex. 1 : în header majoritatea temelor au linia: <meta charset=”<?php bloginfo( ‘charset’ ); ?>” /> linie care poate fi ușor înlocuită cu <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8“>

Ex. 2: <link rel=”pingback” href=”<?php bloginfo( ‘pingback_url’ ); ?>” /> poate fi înlocuit cu <link rel=”pingback” href=”http://domeniul.tau/xmlrpc.php”>

2. metode ce implică instalare unui plugin de cache

Pluginurile de cache generează fișiere statice ce optimizează încărcarea site-ului.

WP Super Cache: pluginul genereză fișiere HTML pentru majoritatea paginilor altfel generate dinamic prin php. Ajută foarte mult la încărcarea mai rapidă a site-ului. Comentariile nu sunt cacheuite deoarece la adăugarea unui nou comentariu se schimbă parametrii.

W3 Total Cache: un plugin excelent recomandat de foarte multe bloguri.

Hyper Cache: un plugin conceput pentru a fi utilizat pe serverele cu resurse mici. Simplu de utilizat, are puține opțiuni, însă foarte clare.

Pe lângă ceste trei pluginuri mai există multe altele. Important e să fie utilizate bine și cu atenție. Uneori e mai util să se lase mai puțin cache, alteori nu. Depinde de site, depinde de numărul de vizitatori, depinde de frecvența publicării de articole, depinde de frecvența modificării codului. În acest sens la orice modificare de cod e indicat să se șteargă cacheul.

3. metode ce comprimă fișierele pentru o creștere a performaței

Pe lângă faptul că o comprimare a fișierelor css, html sau js înseamnă un timp mai scurt de încărcare, se mai adaugă și scăderea numărului de fișiere, un bonus pentru SEO.

– editați fișierele css și ștergeți spațiile, puneți o clasă pe o linie, reduceți comentariile la minimul necesar (fără un milion de steluțe și alte semne obscure pe 15 linii)

– un site egal un fișier css și unul de javascript, mai problematice sunt fișierele adăugate de pluginuri, dar de ele se vor ocupa alte pluginuri (wp minify de exemplu)

WP Minify: un plugin excelent ce reduce semnificativ numărul de fișiere și comprimă fișierele css și js, elimină duplicatele și permite excluderea unor fișiere din comprimare (util de multe ori)

Head Cleaner: curăță codurile din header de duplicate și de linkuri inutile

4. alte pluginuri utile pentru optimizarea wordpress

Plugin Organizer: modifică ordinea în care sunt încărcate pluginurile, dezactivează selectiv plugin-uri funcție de orice tip de post, pagină sau URL

WP Database Optimizer: permite optimizarea bazei de date direct fără a accesa cpanel sau phpmyadmin sau orice altceva. Are posibilitatea de a programa optimizările la un număr setat de zile.

Există multe alte pluginuri utile pentru optimizarea WordPress-ului. Cele prezentate de mai sus sunt testate, populare și suficiente.

Câteva articole despre cum poți îmbunătăți prezența site-ului pe Facebook

noiembrie 19, 2012 Wordpress Tips & Tricks no comments

Eroare la conectarea Jetpack la WordPress.com

octombrie 27, 2012 Wordpress Tips & Tricks 3 comments

Pluginul Jetpack permite wordpress-ului instalat pe domeniul propriu să beneficieze de facilitățile oferite de WordPress.com. Dintre care cele mai utilizate sunt: statistici amănunțite, casete noi de widgets, versiune de mobile, diverse îmbunătățiri și altele. Se pot afla toate aici: What is Jetpack?

Pentru a beneficia de toate acestea trebuie ca pluginul să se conecteze la contul de pe WordPress.com. Deci prima dată este indicat să aveți creat un cont pe WordPress.com util și pentru activarea pluginului Akismet.

La conectare pot apare tot felul de erori, una din cele mai enervante este următoare:

Your Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: site_lang_missing
Try connecting again.

Error Details: The required “site_lang” parameter is missing.

Am căutate rezolvări pe net, schimbând codul de limbă, reinstalând wordpress-ul, însă nimic. Totuși există o rezolvare, cel puțin la mine a funcționat de fiecare dată: dezactivezi temporar TOATE pluginurile după care conectarea va merge și totul va fi ok!

Ca amuzament. După dezactivarea pluginurilor și testarea conectării apare formularul în care trebuie să introduci datele de conectare. În acest moment am activat la loc toate pluginurile și am dat din nou conectare. A mers din prima ca și când totul ar fi fost în regulă de la început.

Cum se poate schimba rolul unui user în WordPress

octombrie 19, 2012 Tutoriale Wordpress, Wordpress Tips & Tricks no comments

Acest mic tutorial WordPress este un pic complicat și înfricoșător.

Pornim de la necesitatea de a schimba unele drepturile (roles) predefinite la un tip de utilizator. Voi exemplifica prin a schimba la Author dreptul de a publica un articol. Practic nu mai vreau ca autorul să poată publica, așa cum implicit poate, vreau doar să poată scrie și să lase publicarea pe seama Adminstratorului.

Întrebarea firească ar fi de ce nu utilizez utilizatorul de tip Contributor. Conform drepturilor utilizatorilor WordPress acesta nu poate publica un articol. Da, așa este, însă contributorul nu poate uploada fișiere spre deosebire de author care poate.

Schimbarea de drepturi o vom vedea în caseta de Publicare din dreapta.

Cum se poate schimba rolul unui user în WordPress

Schimbarea de drepturi o voi face fără a apela la pluginuri. Vom schimba direct din baza de date, însă nu vă fie frică, cu atenție și cu un backup la îndemână nimic nu se va strica.

Pașii necesară schimbării drepturilor autorului

1. Folosind phpMyAdmin căutați în baza de date tabela “wp_options”. Aici intervine prima observație: dacă ați fost scrupuloși la instalarea wordpress-ului, prefixul tabelei nu mai este wp_ acest prefix fiind acum prefixul pus la instalare în formularul de instalare. Dacă nu-l mai știți căutați-l în fișierul config.php. În cazul nostru prefixul este cim_

$table_prefix  = 'cim_';

2. În coloana “option_name” căutați câmpul “wp_user_roles”. La fel ca mai sus, dacă ați schimbat prefixul tabelelor, ceea ce este foarte bine, câmpul căutat va avea numele noul_prefix_user_roles. În cazul acesta “cim_user_roles”. Acestă înregistrare o puteți găsi rapid folosind următoare comandă SQL:

SELECT * FROM wp_options WHERE option_name="wp_user_roles"

unde wp_ va fi înlocuit cu prefixul tabelelor.

3. Edităm această înregistrare și copiem valoarea din câmpul “optin_value”. Acesta va arăta aproximativ ca mai jos:

a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:71:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:12:"delete_users";b:1;s:12:"create_users";b:1;s:17:"unfiltered_upload";b:1;s:14:"edit_dashboard";b:1;s:14:"update_plugins";b:1;s:14:"delete_plugins";b:1;s:15:"install_plugins";b:1;s:13:"update_themes";b:1;s:14:"install_themes";b:1;s:11:"update_core";b:1;s:10:"list_users";b:1;s:12:"remove_users";b:1;s:9:"add_users";b:1;s:13:"promote_users";b:1;s:18:"edit_theme_options";b:1;s:13:"delete_themes";b:1;s:6:"export";b:1;s:24:"NextGEN Gallery overview";b:1;s:19:"NextGEN Use TinyMCE";b:1;s:21:"NextGEN Upload images";b:1;s:22:"NextGEN Manage gallery";b:1;s:19:"NextGEN Manage tags";b:1;s:29:"NextGEN Manage others gallery";b:1;s:18:"NextGEN Edit album";b:1;s:20:"NextGEN Change style";b:1;s:22:"NextGEN Change options";b:1;}}s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:38:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:24:"NextGEN Gallery overview";b:1;s:19:"NextGEN Use TinyMCE";b:1;s:21:"NextGEN Upload images";b:1;s:22:"NextGEN Manage gallery";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:14:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;s:22:"delete_published_posts";b:1;s:24:"NextGEN Gallery overview";b:1;s:19:"NextGEN Use TinyMCE";b:1;s:21:"NextGEN Upload images";b:1;s:22:"NextGEN Manage gallery";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:9:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;s:24:"NextGEN Gallery overview";b:1;s:19:"NextGEN Use TinyMCE";b:1;s:21:"NextGEN Upload images";b:1;s:22:"NextGEN Manage gallery";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}

O nebunie!

Să vedem ce înseamnă aceste cifre și litere.

  • a:5 – listera a urmată de două puncte și o cifra înseamnă că urmează să fie declarate un număr de elemente, exemplu: a:5 se citește “urmează să fie declarate cinci elemente”
  • s:6:”author” – litera s urmată de două puncte și o cifra apoi de alte două puncte și între ghilimele de un șir de cuvinte însemnă este declarația unei proprietăți (element) din mulțimea definită prin “a” două puncte, exemplu: s:6:”author” se citește string de lungime 6 caractere author
  • b:1 este un element boolean: true sau false

Aceste trei tipuri de declarații se grupează îm matrici de elemente.

4. Păstrăm varianta originală și căutăm după s:6:”author” și vom găsi ceva de genul:

s:6:"author";
a:2:
{
s:4:"name";s:6:"Author";s:12:"capabilities";
a:10:
{
s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;s:22:"delete_published_posts";b:1;
}
}

Adică: stringul author are două matrici de elemente, prima conține name, auhor și capabilities care la rândul său este o matrice de 14 elemente cu drepturile autorului: upload_files, edit_posts, edit_published_posts, publish_posts, read și altele.

Deja am găsit locul în care este definit dreptul de a publica articolul de către “author”.

5. Întreg șirul ce definește dreptul autorului de a publica direct un post este: “s:13:”publish_posts”;b:1″. Acest șir trebuie șters după care salvăm înregistrarea și vedem rezultatl în editarea unui post unde în loc de Publish vom avea butonul de Submit to Review ca în figura de mai sus.

6. Concluzii.

  • în această înregistrare adaugă și pluginurile drepturi, deci matricile de mai sus pot fi diferite, mai mari nu mai mici.
  • întotdeauna faceți backup
  • folosiți metoda: modifică-testează-modifică-testează-publică

PS folosiți metoda asta doar dacă nu aveți încotro 🙂

Cum pot exporta sau importa baza de date MySQL folosind SSH?

octombrie 19, 2012 Wordpress Tips & Tricks 1 comment

Nu de puține ori am fost pus în situația de a transfera baze de date mari, de peste 100MB și chiar de peste 1GB, de pe un server pe un alt server.

Pentru bazele de date mai mici se poate folosi utilitarul phpMyAdmin, fie direct din interfața de administrare a domeniului, fie din cPanel sau Plesk sau altă aplicație de management a domeniului (cum sunt cele proprietare de la Godaddy.com sau 1and1.com), fie instalând temporar un phpMyAdmin special pentru transfer. E o varianta bună, însă depinde foarte mult de setările serverului care poate sau nu să accepete fișiere de mari dimensiuni, fisișiere arhivate sau timpi lungi de execuție.

Varianta cea mai bună de export – import baze de date este cea care folosește o conexiune SSH și comenzi mysql.

Cum pot exporta sau importa baza de date MySQL folosind SSH?

Export MySQL database folosind SSH

Exemplul de mai jos este pentru salvarea întregii baze de date într-un fișier .sql care va putea fi descărcat via FTP pe calculatorul local.

mysqldump -u username -p dbname > dbname.sql

unde:

– username este numele de utilizator al bazei de date
– dbname este nu mele bazei de date
– dbname.sql este fișierul final

După execuția comenzii se va cere parola de acces la baza de date.

Import MySQL database folosind SSH

Importul se face într-o baza de date gata creată. Deci primul pas va fi crearea bazei de date și notarea informațiilor necesare importului: numele bazei de date, numele utilizatorului și parola.

Folosind FTP se urcă fișierul în root-ul domeniului și se execută comanda. Atenție, comanda cum este scrisă mai jos se va executa acolo unde este fișierul dbname.sql.

mysql -p -u username dbname < dbname.sql

unde:

– username este numele de utilizator al bazei de date
– dbname este numele bazei de date
– dbname.sql este fișierul ce va fi importat

După execuția comenzii se va cere parola bazei de date.

Tools:

Pentru FTP eu folosesc FileZilla.
Pentru SSH filosesc PuTTY.

Tips & Tricks: eliminarea paragrafului din descrierea categoriilor

octombrie 12, 2012 Wordpress Tips & Tricks no comments

Descrierea unei categorii poate fi folosită în diverse locuri: în meta, în categorie, ca titlu, ca title la categorie sau ca alt la o imagine atașată unei categorii. Desigur și în multe alte locuri.

elimintarea-p-din-descrierea-categoriei-1

Implicit descrierea este folosită sub următoare formă în category.php


<?php
$category_description = category_description();
if ( ! empty( $category_description ) )
echo apply_filters( 'category_archive_meta', '<div>' . $category_description . '</div>' );
?>

Rezultatul este:

<div>
<p>Știri, anunțuri, noutăți din lumea modei!</p>
</div>

După cum se observă, din păcate, apare un <p></p> în plus de care nu avem nevoie.

Pentru a elimina acest paragraf, inserați în functions.php următorul cod:

remove_filter('term_description','wpautop');

Filtrele pentru textarea sunt în /wp-includes/default-filters.php:


// Format text area for display.
foreach ( array( 'term_description' ) as $filter ) {
add_filter( $filter, 'wptexturize'      );
add_filter( $filter, 'convert_chars'    );
add_filter( $filter, 'wpautop'          );
add_filter( $filter, 'shortcode_unautop');
}

Bibliografie:


Cum poți instala mai multe WordPress-uri într-o singură bază de date?

octombrie 5, 2012 Tutoriale Wordpress, Wordpress Tips & Tricks 1 comment

Se pot instala mai multe site-uri WordPress folosind aceeași bază de date? Da, se pot instala. Uneori este necesar să folosim aceeși bază de date pentru mai multe site-uri, deoarece sunt pachete de hosting care oferă un număr limitat de baze de date, dar nelimitat de domenii. Ca exemplu, pachetele de hosting de la Godaddy.

Din capul locului trebuie spus că folosind aceeași bază de date se foloseste aceleași date de conectare pe toate site-urile.

Pașii de urmărit sunt următorii:

– se instalează primul wordpress:

instalare wordpress primul pas

– într-o instalare normală fișierul wp-config.php se va crea automat cu datele din formular introdus după accesarea butonului “Create a Configuration File”, dacă nu se crează automat atunci va trebui editat fișierul wp-config-sample.php după care va trebui schimbată denumirea acestuia în wp-config.php

– următoarea ferestră de configurare conține mai multe informații prin care suntem informații ce date vor trebui la setare

instalarea wordpress-ului pasul 2

– dacă totul este în regulă următorul pas va fi formularul de introducere a datelor de instalare:

formularul de instalare wp

– numele bazei de date, numele utilizatorului, parola de conectare, numele hostului sunt informații pe care vi le furnizează găzduitorul sau le alegeți singur

câmpul Table Prefix este cheia instalării mai multor site-uri WP în aceeași bază de date.

Explicații

La instalare wordpress-ul creează mai multe tabele cu informații în baza de date. Aceste tabele au denumiri diferite, însă toate au un prefix unic, prefix ce poate fi setat în acest pas al instalării WordPress-ului.

Secretul instalării mai multor site-uri pe wordpress în aceeași bază de date este acela ca pentru fiecare nouă instalare să se pună alt prefix la tabele. Simplu nu? Și eficient 🙂