今天早上我更新了我的wordpress,一切都很好,但突然我知道,如果我点击任何没有选择自定义分类法的帖子,都会给我404页。
我认为这是由于一些插件,所以我停用了所有插件,然后我检查,一切正常,然后我一个接一个地激活了插件,并知道我得到404的实际插件是GD Custom Posts And Taxonomies Tools plugin, 我用它来创建自定义分类法。
但是我的其他帖子都没有404,所以我更深入地研究我的wordpress,并且知道我的url结构不支持wordpress 3.1
在我的permalinks结构中,我使用的是自定义分类法,它在wordpress 3.0.5之前运行良好,我的permalink结构如下/%postname%/%location%/%mba_courses%/
地点和mba\\U课程是我的自定义分类,
为了实现这一点,我使用以下代码:
add_filter(\'post_link\', \'location_permalink\', 10, 3);
add_filter(\'post_type_link\', \'location_permalink\', 10, 3);
function location_permalink($permalink, $post_id, $leavename) {
if (strpos($permalink, \'%location%\') === FALSE) return $permalink;
// Get post
$post = get_post($post_id);
if (!$post) return $permalink;
// Get taxonomy terms
$terms = wp_get_object_terms($post->ID, \'location\');
if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $taxonomy_slug = $terms[0]->slug;
else $taxonomy_slug = \'location\';
return str_replace(\'%location%\', $taxonomy_slug, $permalink);
}
add_filter(\'post_link\', \'mba_courses_permalink\', 10, 3);
add_filter(\'post_type_link\', \'mba_courses_permalink\', 10, 3);
function mba_courses_permalink($permalink, $post_id, $leavename) {
if (strpos($permalink, \'%mba_courses%\') === FALSE) return $permalink;
// Get post
$post = get_post($post_id);
if (!$post) return $permalink;
// Get taxonomy terms
$terms = wp_get_object_terms($post->ID, \'mba_courses\');
if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $taxonomy_slug = $terms[0]->slug;
else $taxonomy_slug = \'mba_courses\';
return str_replace(\'%mba_courses%\', $taxonomy_slug, $permalink);
}
我怎样才能在3.1中实现这一点,或者在3.1中有什么功能可以在permalink上自定义分类法?