WordPress şi librăriile JavaScript


Mi-am petrecut astăzi cea mai mare parte a zilei încercând să rezolv o pagină cât mai elegent cu jQuery şi AJAX. Am scris un plugin pentru aceasta, dar în mod particular aş vrea să mă opresc asupra folosirii unor biblioteci JavaScript în WordPress. Practic inserarea lor este uşoară, dat fiind că WordPress foloseşte deja (pentru back-end) diverse biblioteci clasice. Tot ce trebuie este, pentru front-end, să le "trezim" din back-end. Pentru aceasta se foloseşte funcţia wp_enqueue_script (nu e singura cale, dar e cred cea mai elegantă).

<?php wp_enqueue_script(’scriptaculous’); ?>

Am lăsat intenţionat exemplul cu Scriptaculous, pentru a sublinia că şi această bibliotecă e suportată. Urmând linkul de mai sus veţi găsi lista bibliotecilor (sau mă rog, libraries sau frameworks, cum vreţi să le spuneţi): Prototype, Scriptaculous, jQuery, dar şi a unor scripturi particulare, gen ThickBox, Image Cropper, Color Picker şi altele. Ce înseamnă aceasta? Că nu trebuie să le mai încărcaţi, ele fiind deja în WordPress, dar, repet, folosite activ doar în back-end. Pentru front-end trebuie să le activaţi specific. Eventual, înainte de a activa ceva, asiguraţi-vă (uitându-vă în header-ul afişat în navigator) dacă nu apar deja include fişierele necesare, dat fiind că ar putea fi deja folosite de alte pluginuri. Pentru siguranţă şi portabilitate puteţi desigur în pluginul propriu să cereţi includerea/activarea, pentru că dubluri nu vor fi, doar eventual conflicte între biblioteci diferite (dar şi acolo bibliotecile au propriile sisteme anti-conflicte).

Un alt aspect important de spus este că, dacă folosiţi o bibliotecă din WordPress trebuie să ţineţi cont de versiunea ei. S-ar putea ceea ce folosiţi Dvs să nu meargă cu versiunea de framework din WP. În acest caz vă puteţi desigur include fişierele dorite, prin metodele clasice. Apoi mai vine o problemă care multora le-a dat bătăi de cap: dacă aparent un cod jQuery nu funcţionează, atunci s-ar putea să fie pentru că folosiţi… $. Dacă nu folosiţi noConflict() – detalii se găsesc aici – atunci soluţia este foarte simplă. Scrieţi în loc de $ jQuery. Adică nu

$("#depozit").html(raspuns).fadeIn();

ci

jQuery("#depozit").html(raspuns).fadeIn();

Simplu! Astfel veţi putea folosi puterea jQuery în situl Dvs WordPress, fie pentru îmbunătăţiri la design, fie pentru chestiuni de funcţionalitate (formulare, afişări, căutări…). Succes.

PS: Că tot pomeneam şi de AJAX. Dacă doriţi să folosiţi AJAX şi veţi avea un mic fişier PHP în care faceţi prelucrările necesare, s-ar putea ca acesta să aibă nevoie de acces la baza de date, nu? O soluţie ar fi desigur să introduceţi acolo datele de acces, dar dacă mâine deţinătorul sitului (fie el chiar Dvs) doreşte să schimbe parola pentru MySQL? Va trebui schimbată în două locuri: wp-config.php şi fişierul PHP cu scriptul AJAX. Şi atunci? Soluţia cea mai simplă este să includeţi fişierul wp-config.php, dat fiind că deja include datele de logare. Cu o linie precum:

require_once("../../../wp-config.php");

Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (Neevaluat încă)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *