我有自定义分类法“category\\u slider”。
function taxonomy_slider() {
$labels = array(
\'name\' => \'Категории проекта\',
\'singular_name\' => \'Категории\',
\'search_items\' => \'Поиск Категорий\',
\'all_items\' => \'Все Категории\',
\'parent_item\' => \'Родительская Категория\',
\'parent_item_colon\' => \'Родительская Категория:\',
\'edit_item\' => \'Редактировать Категорию\',
\'update_item\' => \'Обновить Категорию\',
\'add_new_item\' => \'Добавить Категорию\',
\'new_item_name\' => \'Название Категории\',
\'menu_name\' => \'Категории проекта\',
);
$args = array(
\'labels\' => $labels,
\'hierarchical\' => true,
\'query_var\' => \'category_slider\',
\'rewrite\' => true,
\'show_admin_column\' => true,
);
register_taxonomy( \'category_slider\', \'attachment\', $args );
}
add_action( \'init\', \'taxonomy_slider\');
我如何才能将我的永久链接结构“site.com/post/post\\u data/post\\u name/”仅适用于具有tax“taxonomy\\u slider”的帖子更改为“site.com/category\\u slider\\u name/post\\u data/post\\u name/”?
SO网友:Taras
It works for me.
add_filter(\'post_link\', \'locale_permalink\', 10, 3);
add_filter(\'post_type_link\', \'locale_permalink\', 10, 3);
function locale_permalink($permalink, $post_id, $leavename) {
if (strpos($permalink, \'%category_slider%\') === FALSE) return $permalink;
$post = get_post($post_id);
if (!$post) return $permalink;
if ($post->post_type != \'post\') {
return $permalink;
} else {
$terms = wp_get_object_terms($post->ID, \'category_slider\');
if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $taxonomy_slug = $terms[0]->slug;
else $taxonomy_slug = \'news\';
return str_replace(\'%category_slider%\', $taxonomy_slug, $permalink);
}
}
add_filter(\'rewrite_rules_array\',\'remove_bare_folder_rule\');
function remove_bare_folder_rule( $rules )
{
unset($rules[\'([^/]+)/?$\']);
return $rules;
}