This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.
Understanding the post_type_link Filter in WordPress
Have you ever needed to change the permalink structure of your custom post types in WordPress? With the post_type_link filter, you can easily modify how your custom post type URLs are generated. This powerful filter allows you to append or customize the link/url of a post, giving you greater control over your site’s URL structure.
Description
The post_type_link filter lets you adjust the permalink for posts of a custom post type. By using this hook, you can append or modify the URL of your posts to better suit your needs.
Parameters
- $post_link: (string) The post’s permalink.
- $post: (WP_Post) The post in question.
- $leavename: (bool) Whether to keep the post name.
- $sample: (bool) Is it a sample permalink.
Live Examples
Example 1: Basic Usage of post_type_link Filter
To run the hook, you can use the following code snippet. This example demonstrates how to apply the filter.
$post_link = apply_filters( 'post_type_link', $post_link, $post, $leavename, $sample ); if ( !empty( $post_link ) ) { // everything has led up to this point... }
Example 2: Adding a Hook Callback
In this example, we’re defining a callback function to modify the post link.
// define the post_type_link callback function weplugins_filter_post_type_link( $post_link, $post, $leavename, $sample ) { // make filter magic happen here... return $post_link; }; // add the filter add_filter( 'post_type_link', 'weplugins_filter_post_type_link', 10, 4 );
Example 3: Appending a Query String to a Custom Post Type URL
This example shows how to append a query string to URLs of a specific custom post type.
function weplugins_append_query_string( $url, $post ) { if ( 'my_custom_post_type' == get_post_type( $post ) ) { return add_query_arg( $_GET, $url ); } return $url; } add_filter( 'post_type_link', 'weplugins_append_query_string', 10, 2 );
If you need further customization or have any questions, feel free to contact us. We’re here to help!
Explore the latest in WordPress
Trying to stay on top of it all? Get the best tools, resources and inspiration sent to your inbox every Wednesday.