Come visualizzare il permalink senza http e www in WordPress
Ho questa riga di codice...
<div class="permalink"><?php the_permalink(); ?></div>
e il risultato sulla mia pagina appare così...
http://mysite.com/whatever/post-or-so
Potrebbe anche apparire così...
http://www.mysite.com/whatever/post-or-so
Tuttavia vorrei ottenere semplicemente mysite.com/whatever/post-or-so
senza il http://
o www
all'inizio.
Non fraintendetemi, questo non ha nulla a che fare con la riscrittura dei permalink o simili. Si tratta semplicemente di visualizzare the_permalink()
nella mia pagina come testo normale e non come link. E in questo caso vorrei eliminare http e www.

Come suggerito da @milo, puoi manipolare il risultato di get_permalink()
. Questo può essere facilmente fatto utilizzando diverse funzioni PHP per le stringhe, qui viene utilizzata str_replace()
. Se hai la necessità di rimuovere sia http://
che https://
passa un array di valori da cercare a str_replace()
.
$permalink = get_permalink();
$find = array( 'http://', 'https://' );
$replace = '';
$output = str_replace( $find, $replace, $permalink );
echo '<p>' . $output . '</p>';
Il codice sopra non gestisce la parte www(.)
, ma il principio dovrebbe essere chiaro.
Un'altra possibilità per la manipolazione sono le funzioni PCRE (Espressioni Regolari Compatibili con Perl) di PHP, qui viene usata preg_replace()
.
$permalink = get_permalink();
$find_h = '#^http(s)?://#';
$find_w = '/^www\./';
$replace = '';
$output = preg_replace( $find_h, $replace, $permalink );
$output = preg_replace( $find_w, $replace, $output );
echo '<p>' . $output . '</p>';

usa get_permalink
invece di the_permalink
e manipolalo come preferisci tramite php.
