Cum se convertește calea fișierului în URL-ul aceluiași fișier?
Cum pot converti calea unui fișier din sistem în URL? Am găsit câteva soluții generale PHP care pot fi predispuse la erori.
Există vreo metodă specifică WordPress pentru a face acest lucru?

Ce înseamnă sau global? Probabil că ar fi de ajutor dacă ai oferi o explicație despre ce face codul tău, de ce ajută la rezolvarea problemei și cum să-l folosești.

Scuze că am fost prea concis. Pur și simplu lipește funcția de mai sus în codul tău (de exemplu în functions.php) și apoi poți obține URL-ul scriptului din fișierul php astfel: $url = abs_path_to_url( dirname(__FILE__) . '/css/styles.css' );
presupunând că folderul css cu fișierul styles.css se află în același director cu scriptul tău.

aici global înseamnă că funcția de mai sus funcționează atât în teme, cât și în plugin-uri

Depinde de unde te afli în mediul WordPress.
Plugin-uri
Dacă ești într-un plugin, poți folosi plugins_url
.
<?php
$url = plugins_url('css/admin.css', __FILE__);
Codul de mai sus va returna calea relativă la fișierul transmis ca al doilea argument. Deci, dacă ești în fișierul principal al plugin-ului, vei obține ceva de genul http://exemplu.com/wp-content/plugins/pluginul-tau/css/admin.css
.
Există și plugin_dir_url
pentru a obține URL-ul unui director. O practică comună este să definești o constantă cu URL-ul plugin-ului în fișierul principal al acestuia.
<?php
/** nume plugin: exemplu wpse216913 */
define('WPSE216913_PLUGINURL', plugin_dir_url(__FILE__));
// wp_enqueue_style('exemplu', WPSE216913_PLUGINURL.'css/admin.css');
Teme
Pe de altă parte, temele ar trebui să folosească get_template_directory_uri
sau get_stylesheet_directory_uri
.
get_template_directory_uri
va returna URL-ul directorului temei părinte, dacă există o temă părinte. get_stylesheet_directory_uri
va returna URL-ul temei copil, dacă există o temă copil, sau al temei părinte în caz contrar. Citește codex-ul pentru mai multe detalii despre diferențe. Tema twenty fifteen are câteva exemple despre cum sunt folosite aceste funcții.
wp_enqueue_style(
'twentyfifteen-ie',
get_template_directory_uri().'/css/ie.css',
array('twentyfifteen-style'),
'20141010'
);
Încărcări
Folosește wp_get_attachment_image_src
pentru imaginile încărcate. Valoarea returnată va include și lățimea și înălțimea imaginii. Aceasta permite și specificarea dimensiunii dorite.
Sau există wp_get_attachment_url
pentru a obține URL-ul atașamentului încărcat. Dacă este folosită pe imagini, va returna URL-ul imaginii originale.
Dacă ai nevoie de URL-ul (sau calea) directorului de încărcare pentru a face ceva personalizat, poți folosi wp_upload_dir
, care returnează un array cu toate informațiile necesare.
print_r(wp_upload_dir())
/*
Array
(
[path] => /calea/catre/wordpress/wp-content/uploads/2016/02
[url] => http://exemplu.com/wp-content/uploads/2016/02
[subdir] => /2016/02
[basedir] => /calea/catre/wordpress/wp-content/uploads
[baseurl] => http://exemplu.com/wp-content/uploads
[error] => false
)
*/
Alte Funcții Utile pentru URL-uri
Toate acestea au aceeași semnătură, urlFunc($path, $scheme)
, iar ambele argumente sunt opționale.
home_url
returnează o cale relativă la pagina principală a site-ului.
echo home_url('/exemplu'); // http://exemplu.com/exemplu
site_url
returnează un URL relativ la locația fișierelor de bază WordPress. De exemplu, dacă WordPress este în directorul wp
...
echo site_url('/exemplu'); // http://exemplu.com/wp/exemplu
admin_url
returnează un URL relativ la calea wp-admin
. Utilă atunci când ai nevoie de calea către admin-ajax.php
, de exemplu.
echo admin_url('admin-ajax.php'); // http://exemplu.com/wp/wp-admin/admin-ajax.php
Mai există câteva altele precum content_url
și includes_url
care returnează căile către directoarele de conținut WP și, respectiv, cele incluse (sau căi relative la acestea).
