Sarathlal N

Get WordPress Page permalinks in template files using Page ID, Name or Slug

In some WordPress theme customizations, I want to get page permalinks for different pages in template files. We can use WordPress default functions, get_page_link() & get_permalink() in such situations.

WordPress page URL using Page ID

<a href="<?php echo get_page_link(Page ID); ?>">Page Title</a>

Example:

<a href="<?php echo get_page_link(40); ?>">Events</a>

WordPress page URL using Page Title

<a href="<?php echo get_permalink( get_page_by_title( 'Page Title' ) ); ?>">Page Title</a>

Example:

<a href="<?php echo get_permalink( get_page_by_title( 'Events' ) ); ?>">Events</a>

WordPress page URL using Page slug

<a href="<?php echo get_permalink( get_page_by_path( 'Page slug' ) ); ?>">Page Title</a>

Example:

<a href="<?php echo get_permalink( get_page_by_path( 'events' ) ); ?>">Events</a>

WordPress page URL of Hierarchical Pages using Page slug.

If we have a page in hierarchy, we want to pass the full slug including the parent to the get_page_by_path function.

<a href="<?php echo get_permalink( get_page_by_path( 'Parent Page slug/child Page slug' ) ); ?>">Page Title</a>

Example:

Now we have a child page called “Parties” with a parent page called “Events”.

<a href="<?php echo get_permalink( get_page_by_path( 'events/parties' ) ); ?>">Parties</a>

Recent Posts

  1. Automating Release Generation with GitHub Actions
  2. WP CLI Commands to Bulk Delete Entries in WordPress Database
  3. Split a Single CSV File into Multiple Files Using the Split Command - Bash
  4. Migrating code repo from BitBucket to GitHub
  5. Streamlining Development - Our Journey with Git, Bitbucket, and Jira

Your Questions / Comments

If you found this article interesting, found errors, or just want to discuss about it, please get in touch.