我试图将我网站的商店部分分为美国和英国部分,因为我向每个国家/地区提供不同的产品。
我想使用子文件夹即。 /us
或/uk
,但仅限于客户进入商店部分(点击商店,类别或产品)。
我认为最好的方法可能是创建shop.
子域名,并在他们进入shop.
子域名后激活基于IP的重定向到相应的子文件夹。
我可以使用国家/地区选择器弹出窗口(不需要通过IP重定向)但我不想要两个单独的网站,我也不希望我的博客帖子在/us
或/uk
个子文件夹。
这就是为什么我只想在用户点击shop.
部分时才激活重定向。
我正在使用Worpress,所以如果有任何插件可行,我可以使用它们。
如果我只使用子文件夹(/shop/uk
,/product/uk
等),那么我可以这样做,但我无法找到适用于我特定要求的任何建议。
答案 0 :(得分:0)
我会创建一个自定义帖子类型“shop”,然后创建一个自定义分类。 然后为每个国家/地区添加新的自定义分类,并将其分配给自定义帖子类型“shop”。
在functions.php中注册自定义帖子类型,如下所示:
add_action( 'init', 'custom_post_types', 0 );
function custom_post_types() {
//shops
register_post_type( 'shops',
array(
'labels' => array(
'name' => __( 'Shops' ),
'singular_name' => __( 'Shops' ),
'all_items' => __( 'All Shops'),
),
'capabilities' => array(
'edit_post' => 'update_core',
'read_post' => 'update_core',
'delete_post' => 'update_core',
'edit_posts' => 'update_core',
'edit_others_posts' => 'update_core',
'delete_posts' => 'update_core',
'publish_posts' => 'update_core',
'read_private_posts' => 'update_core'
),
'taxonomies' => array('countries'),
'menu_position' => 5,
'public' => true,
'has_archive' => false,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt' ),
"rewrite" => array(
"slug"=>'news/%countries%',
"with_front" => false
),
)
);
}
然后注册您的自定义分类:
add_action( 'init', 'build_taxonomies', 0 );
function build_taxonomies() {
register_taxonomy('countries', 'shops', array('hierarchical' => true, 'label' => 'Countries', 'query_var' => true, 'rewrite' => array( 'slug' => 'shops', 'with_front' => false)));
}
为了在注册自定义帖子类型时在重写规则中使用%countries%/,您需要告诉WordPress这意味着什么。你是这样做的:
add_filter( 'post_type_link', 'wpa_shops_permalinks', 1, 2 );
function wpa_shops_permalinks( $post_link, $post ){
if ( is_object( $post ) && $post->post_type == 'shops' ){
$terms = wp_get_object_terms( $post->ID, 'countries' );
if( $terms ){
return str_replace( '%countries%' , $terms[0]->slug , $post_link );
}
}
return $post_link;
}