[wp-hackers] get_page_link by page name/slug?

Lee Kelleher leekelleher at gmail.com
Sun Nov 26 17:38:16 GMT 2006

Does anyone know if there is a way in the existing WP core code to get the
hyperlink to a page by it's slug/name?

The reason for asking is that when I develop/maintain a WP theme, the
post/page IDs are completely out-of-step with the production site, and using
the get_page_link() function only allows for the ID (integer).  So it would
be nice to use the page slug/name as this would work seamlessly across both
dev and production environments.

I have written some code to do this...

function get_page_link_by_slug($page_slug) {
>     global $wpdb;
>     $page_id = 0;
>     $results = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE
> post_status = 'static' AND post_name = '$page_slug'");
>     if ($results) {
>         foreach ($results as $result) {
>             $page_id = $result->ID;
>         }
>     }
>     return get_page_link($page_id);

> usage: echo get_page_link_by_slug('about');

I based the syntax on the get_linkobjectsbyname() function - which adds
another hit on the database, but it saves duplicating the code that formats
the hyperlink.

Would this be useful in the core code? or does anyone know of a better way
of achieving this?

- Lee

Lee Kelleher

More information about the wp-hackers mailing list