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. Replace string in multiple files - Command line
  2. Solve Grunt error - Port 35729 is already in use by another process
  3. Install WP-CLI
  4. Install LAMP - Apache2 , MariaDB, PHP 7 on Debian 8
  5. Enable / Disable Magento 2 module using command line


Questions / Comments

If you found this article interesting, found errors, or just want to discuss about them, please get in touch. Send an email to hello@sarathlal.com & I like your words.