wpjam basic去目录分类中category不支持子分类问题,希望作者可以修复一下哦!
这款插件确实很棒,但是这个去category,有点儿难受了,它只支持去父目录中的,但是子目录下就不支持了,直接就404,希望可以修复一下。
这款插件确实很棒,但是这个去category,有点儿难受了,它只支持去父目录中的,但是子目录下就不支持了,直接就404,希望可以修复一下。
好的。
这是我从一款专门去category的插件中提取的,可以支持去菜单栏中父子分类的,不会404,希望作者可以借鉴一下,其实是想让你加快速度,要不我还得开着一个插件,拖慢网站速度啊,哈哈哈
[code]//WordPress去掉分类目录URL中的category的方法
register_activation_hook(__FILE__, \'no_category_base_refresh_rules\');
register_deactivation_hook(__FILE__, \'no_category_base_deactivate\');
add_action(\'created_category\', \'no_category_base_refresh_rules\');
add_action(\'delete_category\', \'no_category_base_refresh_rules\');
add_action(\'edited_category\', \'no_category_base_refresh_rules\');
add_action(\'init\', \'no_category_base_permastruct\');
add_filter(\'category_rewrite_rules\', \'no_category_base_rewrite_rules\');
add_filter(\'query_vars\', \'no_category_base_query_vars\');
add_filter(\'request\', \'no_category_base_request\');
function no_category_base_refresh_rules() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
function no_category_base_deactivate() {
remove_filter( \'category_rewrite_rules\', \'no_category_base_rewrite_rules\' );
no_category_base_refresh_rules();
}
function no_category_base_permastruct()
{
global $wp_rewrite;
global $wp_version;
if ( $wp_version >= 3.4 ) {
$wp_rewrite->extra_permastructs[\'category\'][\'struct\'] = \'%category%\';
} else {
$wp_rewrite->extra_permastructs[\'category\'][0] = \'%category%\';
}
}
function no_category_base_rewrite_rules($category_rewrite) {
global $wp_rewrite;
$category_rewrite=array();
if ( class_exists( \'Sitepress\' ) ) {
global $sitepress;
remove_filter( \'terms_clauses\', array( $sitepress, \'terms_clauses\' ) );
$categories = get_categories( array( \'hide_empty\' => false ) );
add_filter( \'terms_clauses\', array( $sitepress, \'terms_clauses\' ), 10, 4 );
} else {
$categories = get_categories( array( \'hide_empty\' => false ) );
}
foreach( $categories as $category ) {
$category_nicename = $category->slug;
if ( $category->parent == $category->cat_ID ) {
$category->parent = 0;
} elseif ( $category->parent != 0 ) {
$category_nicename = get_category_parents( $category->parent, false, \'/\', true ) . $category_nicename;
}
$category_rewrite[\'(\'.$category_nicename.\')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$\'] = \'index.php?category_name=$matches[1]&feed=$matches[2]\';
$category_rewrite[\"({$category_nicename})/{$wp_rewrite->pagination_base}/?([0-9]{1,})/?$\"] = \'index.php?category_name=$matches[1]&paged=$matches[2]\';
$category_rewrite[\'(\'.$category_nicename.\')/?$\'] = \'index.php?category_name=$matches[1]\';
}
$old_category_base = get_option( \'category_base\' ) ? get_option( \'category_base\' ) : \'category\';
$old_category_base = trim( $old_category_base, \'/\' );
$category_rewrite[$old_category_base.\'/(.*)$\'] = \'index.php?category_redirect=$matches[1]\';
return $category_rewrite;
}
function no_category_base_query_vars($public_query_vars) {
$public_query_vars[] = \'category_redirect\';
return $public_query_vars;
}
function no_category_base_request($query_vars) {
if( isset( $query_vars[\'category_redirect\'] ) ) {
$catlink = trailingslashit( get_option( \'home\' ) ) . user_trailingslashit( $query_vars[\'category_redirect\'], \'category\' );
status_header( 301 );
header( \"Location: $catlink\" );
exit();
}
return $query_vars;
}
?>
[/code]
其实希望作者,可以添加一个清理数据库孤立、文章修订版本等无用数据的功能,不知道可行不可行,虽然要求有点儿过分,哈哈哈
不考虑
暂时不支持网页回复,请安装 WPJAM-Basic 插件,然后在 WordPress 后台即可参与讨论。