Using WordPress ‘post_permalink()’ PHP function

The post_permalink() WordPress PHP function retrieves the permalink from a post ID or a WP_Post object.

Usage

To use the function, simply call post_permalink($post_id) where $post_id is the ID of the post you want the permalink for. The function will return the permalink as a string.

Parameters

  • $post (int|WP_Post): Optional. Post ID or WP_Post object. Default is global $post.

More information

See WordPress Developer Resources: post_permalink

Examples

Retrieve Permalink Using Post ID

This example demonstrates how to retrieve the permalink of a post using its ID.

$post_id = 123;
$permalink = post_permalink($post_id);
echo "The permalink for post $post_id is: $permalink";

Retrieve Permalink Using WP_Post Object

This example shows how to retrieve the permalink of a post using a WP_Post object.

$post_object = get_post(123);
$permalink = post_permalink($post_object);
echo "The permalink for post {$post_object->ID} is: $permalink";

This example demonstrates how to display the permalink of a post within a WordPress template.

while (have_posts()) {
    the_post();
    echo 'Post title: ' . get_the_title() . '<br>';
    echo 'Permalink: ' . post_permalink() . '<br><br>';
}

This example shows how to create an HTML link using the post permalink.

$post_id = 123;
$permalink = post_permalink($post_id);
echo "<a href='$permalink'>Read more about this post</a>";

This example demonstrates how to retrieve permalinks for all posts in a specific category.

$category_id = 5;
$args = array(
    'category' => $category_id,
    'posts_per_page' => -1
);
$posts = get_posts($args);

foreach ($posts as $post) {
    echo 'Post title: ' . $post->post_title . '<br>';
    echo 'Permalink: ' . post_permalink($post->ID) . '<br><br>';
}