afișează permalink-ul postării fără http și www

4 sept. 2012, 17:44:29
Vizualizări: 14.5K
Voturi: 1

Am această linie …

<div class="permalink"><?php the_permalink(); ?></div>

iar rezultatul pe pagina mea arată astfel …

http://mysite.com/whatever/post-or-so

Cred că ar putea arăta și așa …

http://www.mysite.com/whatever/post-or-so

Totuși, aș dori să am doar mysite.com/whatever/post-or-so fără http:// sau www în față.

Care este cea mai bună și mai ușoară metodă pentru a face acest lucru?

Nu mă înțelege greșit, nu are legătură cu rescrierea permalink-urilor sau altceva de genul. Doar un simplu echo al the_permalink() pe pagina mea care nu este tratat ca link ci ca text normal. Și în acest caz aș dori să scap de http sau www.

0
Toate răspunsurile la întrebare 3
0

După cum a sugerat @milo, poți manipula rezultatul returnat de get_permalink(). Acest lucru se poate face ușor folosind mai multe funcții PHP pentru șiruri de caractere, aici este folosită str_replace(). Dacă trebuie să elimini atât http:// cât și https://, poți furniza un array cu aceste valori către str_replace().

$permalink = get_permalink(); // Obține URL-ul permanent al postării
$find = array( 'http://', 'https://' ); // Șirurile de caractere care trebuie înlocuite
$replace = ''; // Cu ce înlocuim șirurile găsite
$output = str_replace( $find, $replace, $permalink ); // Efectuează înlocuirea
echo '<p>' . $output . '</p>'; // Afișează rezultatul

Exemplul de mai sus nu gestionează partea cu www(.), dar principiul ar trebui să fie clar.

O altă posibilitate de manipulare sunt funcțiile PCRE (Expresii Regulate Compatibile cu Perl) din PHP, aici este folosită preg_replace().

$permalink = get_permalink(); // Obține URL-ul permanent al postării
$find_h = '#^http(s)?://#'; // Regex pentru a găsi http:// sau https://
$find_w = '/^www\./'; // Regex pentru a găsi www.
$replace = ''; // Cu ce înlocuim șirurile găsite
$output = preg_replace( $find_h, $replace, $permalink ); // Înlocuiește http(s)://
$output = preg_replace( $find_w, $replace, $output ); // Înlocuiește www.
echo '<p>' . $output . '</p>'; // Afișează rezultatul
26 dec. 2013 19:56:34
0

folosește get_permalink în loc de the_permalink și manipulează-l după cum dorești prin php.

4 sept. 2012 17:52:20
1

Există o metodă simplă.

$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] va returna URL-ul absolut fără http(s) la început.

23 dec. 2020 11:56:36
Comentarii

Doar pentru pagina curentă. Acest lucru nu va funcționa pentru afișarea link-urilor către alte pagini în buclă, cum ar face get_permalink.

Rup Rup
24 dec. 2020 15:45:16