If you want to remove the category base /category/
, you can install the WP no category base plugin which will add a new set of rewrite rules for categories. the side-effect of this is that you can set your post permalinks to /article-%postname%/
and it will no longer effect category permalinks. it will still however effect tags.
Your other option, or in conjunction with the above plugin, is to filter post_link
to add the article-
prefix, then modify incoming requests to remove that prefix so WordPress can find the post:
add_filter( 'post_link', 'wpa68069_post_prefix' );
function wpa68069_post_prefix( $url ) {
$prefix = 'article-';
$parts = explode( "https://wordpress.stackexchange.com/", $url );
return home_url( "https://wordpress.stackexchange.com/" ) . $prefix . $parts[ count( $parts ) - 2 ] . "https://wordpress.stackexchange.com/";
}
add_action( 'parse_request', 'wpa68069_parse_request' );
function wpa68069_parse_request( $request ){
if( !isset( $request->query_vars['name'] ) )
return $request;
if( false !== strpos( $request->query_vars['name'], 'article-' ) )
$request->query_vars['name'] = substr( $request->query_vars['name'], 8 );
return $request;
}