如果帖子只有关税,请将URL更改为帖子

时间:2016-07-14 作者:Taras

我有自定义分类法“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/”?

1 个回复
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;
}