I'm stuck for some days with this problem and I don't know what else to do.
With %somethingHere%
on slug rewrite, pages permalinks are broken (CPT AND CT OK).
Without, I don't have my desired Post structure but Pages permalinks are OK.
CPT and CT Creation
function custom_post_type() {
register_taxonomy(
'marca',
'',
array(
'label' => 'Marcas',
'singular_label' => 'Marca',
'hierarchical' => true,
'query_var' => true
//'rewrite' => array('slug' => 'relogios'),
)
);
$labels = array(
'name' => _x( 'Relogios', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Relogio', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Relogios', 'text_domain' ),
'parent_item_colon' => __( 'Parent Item:', 'text_domain' ),
'all_items' => __( 'All Items', 'text_domain' ),
'view_item' => __( 'View Item', 'text_domain' ),
'add_new_item' => __( 'Add New Item', 'text_domain' ),
'add_new' => __( 'Add New', 'text_domain' ),
'edit_item' => __( 'Edit Item', 'text_domain' ),
'update_item' => __( 'Update Item', 'text_domain' ),
'search_items' => __( 'Search Item', 'text_domain' ),
'not_found' => __( 'Not found', 'text_domain' ),
'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ),
);
$args = array(
'label' => __( 'relogios', 'text_domain' ),
'description' => __( 'Relogios', 'text_domain' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'revisions', 'custom-fields', 'page-attributes', ),
'taxonomies' => array( 'post_tag' , 'marca'),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'can_export' => true,
'has_archive' => false,
'exclude_from_search' => false,
'publicly_queryable' => true,
'rewrite' => array(
//'slug' => 'event',
'slug' => '%marca%/relogios',
'with_front' => true
),
'menu_icon' => 'dashicons-clock',
'capability_type' => 'post',
);
register_post_type( 'relogios', $args );
$labels_joias = array(
'name' => _x( 'Joias', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Joia', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Joias', 'text_domain' ),
'parent_item_colon' => __( 'Parent Item:', 'text_domain' ),
'all_items' => __( 'All Items', 'text_domain' ),
'view_item' => __( 'View Item', 'text_domain' ),
'add_new_item' => __( 'Add New Item', 'text_domain' ),
'add_new' => __( 'Add New', 'text_domain' ),
'edit_item' => __( 'Edit Item', 'text_domain' ),
'update_item' => __( 'Update Item', 'text_domain' ),
'search_items' => __( 'Search Item', 'text_domain' ),
'not_found' => __( 'Not found', 'text_domain' ),
'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ),
);
$args_joias = array(
'label' => __( 'joias', 'text_domain' ),
'description' => __( 'Joias', 'text_domain' ),
'labels' => $labels_joias,
'supports' => array( 'title', 'editor', 'revisions', 'custom-fields', 'page-attributes', ),
'taxonomies' => array('post_tag', 'marca' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'can_export' => true,
'has_archive' => false,
'exclude_from_search' => false,
'publicly_queryable' => true,
'rewrite' => array(
'slug' => '%marca%/joias',
'with_front' => true
),
'menu_icon' => 'dashicons-clock',
'capability_type' => 'post',
);
register_post_type( 'joias', $args_joias );
}
add_action( 'init', 'custom_post_type');
Post Link Filter
This is the function where I replace the general taxonomy name for the current taxonomy term.
add_filter('post_type_link', 'marca_permalink_structure');
function marca_permalink_structure($post_link, $post, $leavename, $sample)
{
//if (is_page()) { return $post_link;}
if ( false !== strpos( $post_link, '%marca%' ) ) {
$event_type_term = get_the_terms( $post->ID, 'marca' );
$post_link = str_replace( '%marca%', array_pop( $event_type_term )->slug, $post_link );
}
return $post_link;
}
Any ideas?
'has_archive' => true
and then goto your admin settings->Permalinks and two times save the Permalink then i think it work fine