To display the primary category in the permalink of your WordPress posts, you’ll need to modify the permalink structure to include the category. This involves a bit of setup and customization within your WordPress site. Here’s how you can do it:
1. Set the Permalink Structure
First, you need to adjust the permalink settings to include the category:
- Go to your WordPress dashboard.
- Navigate to Settings > Permalinks.
- Select the Custom Structure option.
- Add
/%category%/%postname%/
to the field to ensure the URL structure includes the category followed by the post name.
2. Install a Plugin to Handle Primary Categories
By default, WordPress does not support the concept of a “primary” category for posts that have multiple categories. To implement this, you can use a plugin like Yoast SEO, which allows you to specify a primary category for each post. After installing Yoast SEO:
- Edit the post where you want to set a primary category.
- In the categories section, you’ll see an option to make one of the categories the primary one (provided by Yoast SEO).
3. Custom Function for Primary Category in Permalink
If you prefer not to use a plugin or need more customized behavior, you can add some code to your theme’s functions.php
file to override the default category used in permalinks. Here’s an example code snippet:
add_filter('post_link', 'custom_primary_category_permalink', 10, 3); add_filter('post_type_link', 'custom_primary_category_permalink', 10, 3); function custom_primary_category_permalink($permalink, $post_id, $leavename) { if (strpos($permalink, '%category%') === FALSE) return $permalink; // Get post $post = get_post($post_id); if (!$post) return $permalink; // Get primary category $primary_category = get_the_terms($post->ID, 'category')[0]; // Adjust to select your primary category logic if ( !is_wp_error($primary_category) && !empty($primary_category) && is_object($primary_category) ) { $category_slug = $primary_category->slug; } else { $default_category = get_term_by('id', get_option('default_category'), 'category'); $category_slug = $default_category->slug; } return str_replace('%category%', $category_slug, $permalink); }
4. Refresh Permalinks
After making changes, especially if you’ve added or modified code:
- Go back to Settings > Permalinks in the WordPress dashboard.
- Just click Save Changes without altering anything to refresh the permalink structure.
This setup should help you incorporate the primary category into your WordPress permalinks. Make sure to test the changes in a staging environment before applying them to your live site to avoid any disruptions.
Jassa
Thanks
Recent Comments