I have created a page called Blog and set it as the blog posts page from the wordpress settings.when I create the posts and publish the url structure is like
mysite.com/postname
i would like it to be like
mysite.com/blog/postname
so i edited the custom permalink structure to
mysite.com/blog/%postname%/
which is working.But i have another custom post type called Work
now the permlink structure for work goes like
mysite.com/blog/work/workname
it was
mysite.com/work/workname
before i edited the permalink custom structure.
Is there any help to make it the way i want.ie..
mysite.com/blog/postname
&
mysite.com/work/workname
Please help Thanks!!
Edit
my website is
http://jointviews.com/blog/work/best-school-bus-tracking-system/
http://jointviews.com/blog/building-long-term-relationships-with-customers-using-digital-media/
i have register the post type as follows
function work_register() {
$labels = array(
'name' => _x('Work', 'post type general name'),
'singular_name' => _x('Work Item', 'post type singular name'),
'add_new' => _x('Add New', 'work item'),
'add_new_item' => __('Add New Work Item'),
'edit_item' => __('Edit Work Item'),
'new_item' => __('New Work Item'),
'view_item' => __('View Work Item'),
'search_items' => __('Search Work'),
'not_found' => __('Nothing found'),
'not_found_in_trash' => __('Nothing found in Trash'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'menu_icon' => get_stylesheet_directory_uri() . '/article16.png',
'rewrite' => true, 'capability_type' => 'post',
'hierarchical' => true,
'menu_position' => null,
'supports' => array('title','editor','thumbnail')
);
register_post_type( 'work' , $args );
//register_taxonomy("categories", array("work"), array("hierarchical" => true, "label" => "Categories", "singular_label" => "Category", "rewrite" => true));
}
You started perfectly and you are not far from a working solution, all you have to do is to change a little bit the way you register your “work” CPT, you need to change rewrite like this:
the way it works is: if your permalink structure is /blog/, then your links will be:
if with_front = false permalink: /news/
if with_front = true permalink: /blog/news/
and the issue is that it defaults to true
the wordpress codex page that has this info is here
what you also have to note is:
If registering a post type inside of a plugin, call flush_rewrite_rules() in your activation and deactivation hook (see Flushing Rewrite on Activation below). If flush_rewrite_rules() is not used, then you will have to manually go to Settings > Permalinks and refresh your permalink structure before your custom post type will show the correct structure.
Use the Custom Post Type Permalinks plugin to manually adjust the permalink structure of your custom post type separately.
Leave your normal permalink structure as
/blog/%postname%/
, and make your structure for your custom post type/work/%postname%/
.Ensure your custom post type has has_archive set to true, otherwise it won’t work.