仅从特定类别的WordPress网址中删除类别库

时间:2016-05-19 09:54:07

标签: wordpress .htaccess url

我想仅针对特定类别从Wordpress URL中删除类别库。 例如,我需要改变: mysite.com/category/blog 至 mysite.com/blog

但我想保持其他类别不变: mysite.com/category/songs

我认为可以通过一些.htaccess规则来实现,但我发现了一些删除所有网址中基本类别的通用规则。

3 个答案:

答案 0 :(得分:2)

您可以使用Enhanced Custom Permalinks Wp插件轻松实现此目的。你只需要编辑类别,你就会看到一个字段来添加你的自定义网址。

https://wordpress.org/plugins/enhanced-custom-permalinks/

答案 1 :(得分:2)

这可以通过一些自定义过滤器来实现。动作。 尝试将此代码放在主题的functions.php文件中:

add_filter( 'post_link', 'custom_permalink', 10, 3 );
function custom_permalink( $permalink, $post, $leavename ) {
    // Get the categories for the post
    $category = get_the_category($post->ID); 
    if (  !empty($category) && $category[0]->cat_name == "News" ) {
        $permalink = trailingslashit( home_url('/'. $post->post_name .'-'. $post->ID .'/' ) );
    }
    return $permalink;
}
add_action('generate_rewrite_rules', 'custom_rewrite_rules');
function custom_rewrite_rules( $wp_rewrite ) {
    // This rule will will match the post id in %postname%-%post_id% struture
    $new_rules['^([^/]*)-([0-9]+)/?'] = 'index.php?p=$matches[2]';
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
    return $wp_rewrite;
}

这将为帖子设置所需的永久链接结构:

答案 2 :(得分:0)

您可以在不使用插件的情况下轻松完成此操作。 通过管理面板 转到设置 - >永久链接并选择默认为自定义

在这里你知道更多.. https://codex.wordpress.org/Using_Permalinks