Il problema
Per ottenere un link di un post/pagina, WordPress ha una funziona interna chiamata get_permalink.Però questa accetta solo l’ID come parametro.Non possiamo prendere un permalink se abbiamo il nome del post.
La soluzione
Ho creato una funzione che ritorna un URL quando mandiamo come parametro il nome di un post/pagina.Copia la funzione nel file functions.php nel template corrente.
function get_permalink_by_name($post_name) { global $post; global $wpdb; $id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = '".$post_name."'"); return get_permalink($id); }
La chiamata della funzione
Chiama la funzione all’interno del ciclo foreach/while, da qualche parte nel tuo template.Il codice che segue stampa l’URL dell’articolo “my-post-name”:
echo get_permalink_by_name('my-post-name');
Miglioramenti
Se avete altre idee, bug da segnalare, o qualsiasi altra cosa per migliorare il codice, scrivete qui sotto un commenti e darò un’occhiata.
Grazie!