Ottenere il permalink di un post/pagina dal nome

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!