Când dezvoltați o temă sau un plugin, veți găsi adesea că trebuie să includeți o adresă URL în codul dvs. De exemplu, într-un plugin este posibil să aveți nevoie de un link către o foaie de stil inclusă împreună cu pluginul, în timp ce într-o temă veți dori probabil să codați adresa URL a site-ului în antetul dvs..
S-ar putea fi tentant să codificați pur și simplu adresa URL în același mod ca și dvs. într-un site static, dar este o idee proastă. În acest tutorial vă voi explica de ce nu ar trebui să faceți acest lucru și vă vom arăta funcțiile pe care le puteți utiliza pentru a crea dinamic adrese URL.
Să începem cu teme. Dacă dezvoltați o temă pentru utilizarea pe un anumit site, este posibil să nu păreați prea dăunător pentru adăugarea domeniului site-ului în fișierele tematice undeva, dar există anumite riscuri și dezavantaje:
Deci nu face asta!
Dar despre pluginuri? Ei bine, acest lucru este și mai riscant. Nu este neobișnuit să dezvolți o temă doar pentru un singur site, dar cele mai multe pluginuri vor fi utilizate pe mai multe site-uri. Este puțin probabil că ați codificat greu o adresă URL completă într-un plugin, însă este posibil să fiți tentat să utilizați o funcție pentru a prelua adresa URL a site-ului și apoi să codificați calea către directorul plugin. Din nou, acest lucru este riscant:
Acest lucru ar putea duce la faptul că plugin-ul dvs. nu funcționează deloc.
Deci, ce faceți pentru a evita URL-urile de codificare greu în WordPress?
Există o varietate de funcții pe care le utilizați pentru a evita URL-urile de codificare greu în WordPress. Le voi împărți în cinci categorii:
Să începem cu funcțiile de recuperare și de ieșire a unui link către pagina de pornire.
Următoarele etichete de șabloane vor prelua sau afișa adresa URL a paginii de pornire pentru site-ul dvs.:
bloginfo ('url')
: afișează adresa URL de domiciliu așa cum este specificat în setările de citire din admin.get_bloginfo ('url')
: preia adresa URL a site-ului fără să o afișeze.HOME_URL ()
: preia adresa URL a paginii de pornire fără a fi afișată: utilizați echo esc_url (home_url ('/'));
pentru a afișa adresa URL de domiciliu cu o bară laterală. Acest lucru necesită doi parametri opționali: calea de $
dacă doriți să adăugați o cale către o anumită pagină sau să adăugați o slash înclinată și schema de $
pentru a specifica schema pentru adresa URL, cum ar fi http
, https
și rudă
.get_home_url ()
preluă adresa URL pentru pagina de pornire și acceptă Multisite: puteți include ID-ul blogului ca parametru.Adresa paginii()
: adresa URL în care este stocată WordPress, deci dacă instalarea dvs. WordPress se află în subdirectorul wordpress, aceasta va prelua adresa URL http://mysite.com/wordpress
. get_site_url ()
: Returnează URL-ul site-ului fără a-l afișa. Poate fi folosit și cu parametrii pentru a afișa adresa URL a unui site într-o rețea multilingvă, pentru a adăuga o cale și pentru a utiliza o schemă specifică.network_home_url ()
: adresa URL de domiciliu pentru site-ul principal dintr-o rețea multisite, utilă dacă doriți să includeți un link către site-ul principal în subsolul fiecărui site din rețea, de exemplu.network_site_url ()
: adresa URL a site-ului principal în cadrul unei rețele multisite.După cum puteți vedea, există câteva etichete diferite pe care le puteți utiliza pentru a afișa adresa URL. Ceea ce folosiți va depinde de un număr de actori:
Ar trebui să utilizați unul dintre acestea în fișierele șablonului de temă în care doriți să inserați un link spre pagina de pornire, de exemplu dacă un logo din capul site-ului dvs. se leagă de pagina de pornire. S-ar putea să existe și cazuri în care un plugin va trebui să preia sau să afișeze adresa URL a paginii de pornire.
Pe lângă adresa URL a paginii de pornire, pot exista momente când doriți să codificați linkuri către alte pagini de pe site. Acestea vor include pagini, postări, atașamente și tipuri personalizate de postări. Iată funcțiile pe care ar trebui să le utilizați:
POST_PERMALINK ()
trimite un link către o postare, cu ID-ul postului ca parametru.get_page_link ()
prelucrează (dar nu emite) linkul către o pagină, cu identificatorul paginii ca parametru.get_permalink ()
atrage (dar nu emite) permalink pentru o postare sau o pagină, cu postul sau ID-ul paginii ca parametru.get_category_link ()
preluă legătura la o categorie de arhivă, iar ID-ul categoriei este parametrul său.get_tag_link ()
preluă legătura la pagina de arhivă a unei etichete, iar ID-ul etichetei ca parametru.get_post_type_archive_link ()
preluă legătura la o arhivă de tip post, cu tipul de post ca parametru al acesteia.get_term_link ()
aduce legătura cu un termen de taxonomie, termenul și taxonomia fiind parametrii săi.the_attachment_link ()
ieșire link-ul la un atașament, cu ID-ul de atașament ca primul său parametru. Utilizați alți parametri pentru a defini dimensiunea imaginii și dacă linkul va duce la fișierul în sine sau la pagina de atașament.get_attachment_link ()
preluă legătura pentru un atașament, cu identificatorul atașamentului ca parametru.wp_get_attachment_link ()
de asemenea, aduce legătura la un atașament, dar vă permite și să afișați imaginea dacă atașamentul este o imagine, la o dimensiune specificată.get_search_link ()
preia linkul la pagina de căutare. Puteți defini o interogare ca parametru sau o puteți lăsa necompletată, caz în care va utiliza interogarea curentă.Dacă creați un plugin sau o temă cu ecranele de setări în administratorul WordPress sau dacă personalizați ecranele de administrare, vă recomandăm să adăugați linkuri către ecranele de administrare. Din nou, nu trebuie să codificați cu greu adresele URL, însă folosiți unul dintre aceste etichete:
admin_url ()
prelucrează (dar nu emite) o adresă URL în admin. Trebuie să includeți calea către adresa URL ca parametru și puteți include și schema dacă este necesar. Deci, de exemplu, pentru a afișa adresa URL a ecranului pentru a crea o postare nouă, ați folosi echo admin_url ('post-new.php');
.get_admin_url ()
este similar cu admin_url ()
dar acceptă rețele Multisite: puteți include ID-ul blogului ca parametru.edit_post_link ()
afișează un link către pagina de editare pentru o postare. Poate fi folosit în buclă sau în afara bucla cu codul poștal ca parametru.get_edit_post_link ()
preluă legătura la ecranul de editare a postului, iar ID-ul postului este parametrul său.La fel ca atunci când codificați adrese URL în ecranele de front sau de administrare, ar trebui să codificați corect adresele URL și căile atunci când se referă la fișierele din pluginul sau folderele tematice.
Mai întâi, aici sunt funcțiile pe care ar trebui să le utilizați în fișierele de teme:
get_stylesheet_directory ()
extrage calea serverului complet (nu URL-ul) pentru directorul temei activate. Utilizați această opțiune pentru a apela mai degrabă fișiere decât pentru a afișa linkuri.get_stylesheet_directory_uri ()
preia adresa URL pentru tema activă curentă, fără o bară laterală. Utilizați-l în fișierele șablon pentru a prelua resursele stocate în dosarul tematic: de exemplu, pentru a afișa o imagine stocată în folderul de imagini al temei, utilizați
.get_bloginfo ('stylesheet_directory')
preia adresa URL pentru tema activată curent: folosind get_stylesheet_directory_uri ()
este mai curat.get_template_directory_uri ()
este similar cu get_stylesheet_directory_uri ()
dar dacă utilizați o temă de copil, acesta preia adresa URL pentru tema părinte. asemănător, get_template_directory ()
funcționează în același mod ca get_stylesheet_directory ()
ci pentru tema părintelui.Există, de asemenea, funcții pentru utilizarea în fișierele plugin:
plugins_url ()
preia adresa URL absolută în directorul de pluginuri (fără o slash înclinată). Este nevoie de doi parametri opționali: calea de adăugat după adresa URL și pluginul la care doriți ca adresa URL să fie relativă.plugin_dir_url ()
returnează adresa URL a directorului în care se află un fișier (cu o slash înclinată), cu acel fișier ca parametru. În mod normal, ai folosi __FIŞIER__
ca parametru pentru a denumi fișierul curent.Iată un exemplu pentru fiecare dintre cele de mai sus. În primul rând, pentru a prelua URL-ul pentru un fișier din directorul curent include directorul:
plugins_url ('include / myfile.php', __FILE__);
Și pentru a prelua aceeași adresă URL folosind plugin_dir_url ()
:
plugin_dir_url (__FILE__). 'include / myfile.php';
Rețineți că, cu al doilea exemplu, trebuie să reluați calea după funcția: prefer să fie primul, deoarece este mai bine. Nu uitați că cel de-al doilea returnează un slash și primul nu.
Nu trebuie să codificați niciodată legăturile cu foile de stil și scripturile din fișierele sau pluginurile șablonului: utilizați o funcție și atașați-o la cârligul corect. Acest lucru evită problemele cu mutarea fișierelor, asigură utilizarea scripturilor corecte fără duplicare și este, de asemenea, mai eficientă.
Pentru a apela o foaie de stil, utilizați wp_register_style ()
și wp_enqueue_style ()
într-o funcție și cârlig la wp_enqueue_scripts
cârlig. Funcția de mai jos ar face acest lucru într-un plugin:
Rețineți că am folosit __FIŞIER__
de mai sus, care spune WordPress că calea către foaia de stil este relativă la fișierul curent.
Apelarea unui script este similară, dar utilizează wp_register_script ()
și wp_enqueue_script ()
în funcția dvs. și le atașează pe acestea wp_enqueue_scripts
cârlig. Exemplul de mai jos înregistrează un nou script și îl numește:
funcția register_my_scripts () wp_register_script ('my_script', plugins_url ('/js/script.js', __FILE__)); wp_enqueue_script ('my_script'); add_action ('wp_enqueue_scripts', 'register_my_scripts');
Dacă scriptul dvs. utilizează un script inclus în WordPress, cum ar fi jQuery, nu este necesar să îl înregistrați; doar enqueue-l după cum urmează:
funcția register_my_scripts () wp_enqueue_script ('my_script', plugins_url ('/js/script.js', __FILE__), 'jquery', 'true'); add_action ('wp_enqueue_scripts', 'register_my_scripts');
Citiți mai multe despre wp_enqueue_scripts
cârlig în acest tutorial despre includerea JavaScript și CSS în temele și pluginurile dvs..
Sper că te-am convins că URL-urile greu de codificare în WordPress sunt o idee proastă: pot duce la tot felul de probleme în viitor și sunt mai puțin eficiente. În funcție de locul unde trebuie să vă conectați, WordPress oferă o funcție de înlocuire a oricărei URL-uri codate greu, fie în teme, fie în pluginuri. Puteți utiliza funcții și etichete de șablon pentru a vă conecta la paginile de pe frontul site-ului dvs., inclusiv la pagina de pornire, la ecranele administratorului WordPress și la fișierele din șabloanele sau pluginurile.