正如标题所说,我想为属于某个类别的帖子创建一个不同的永久链接结构,在我的例子中,名称是“ICO”。我在StackExchange上找到了这段代码,但它实际上对我没有任何帮助,与OPs反馈相反。
代码为:
//Rewrite URLs for "ICO" category
add_filter( \'post_link\', \'custom_permalink\', 10, 3 );
function custom_permalink( $permalink, $post, $leavename ) {
// Get the category for the post
$category = get_the_category($post->ID);
if ( !empty($category) && $category[0]->cat_name == "ICO" ) {
$cat_name = strtolower($category[0]->cat_name);
$permalink = trailingslashit( home_url(\'/\'. $cat_name . \'/\' . $post->post_name .\'/\' ) );
}
return $permalink;
}
add_action( \'init\', \'custom_rewrite_rules\' );
function custom_rewrite_rules() {
add_rewrite_rule(
\'ico/([^/]+)(?:/([0-9]+))?/?$\',
\'index.php?category_name=ico&name=$matches[1]&page=$matches[2]\',
\'top\' // The rule position; either \'top\' or \'bottom\' (default).
);
}
主页上的所有此类帖子的URL都没有更改,默认的URL结构是相同的www.site。com/post\\U名称/
然而,我注意到,在一些小部件上,在一个包含该类别帖子的列表中,有些帖子的URL发生了更改,有些没有更改。它们之间没有任何区别,它们有相同的类别。即使我使用该URL/ico/post\\u name/it,如果我删除/ico/并使用默认的永久链接结构,它也可以工作,使其成为同一帖子的重复URL。
我做错了什么?
编辑:我也试过这段代码,效果一样,不起作用
add_filter( \'post_link\', \'custom_permalink\', 10, 3 );
function custom_permalink( $permalink, $post, $leavename ) {
// Get the categories for the post
$category = get_the_category($post->ID);
if ( !empty($category) && $category[0]->cat_name == "ICO" ) {
$cat_name = strtolower($category[0]->cat_name);
$permalink = trailingslashit( home_url(\'/\'. $cat_name . \'/\' . $post->post_name .\'/\' ) );
}
return $permalink;
}
add_action(\'generate_rewrite_rules\', \'custom_rewrite_rules\');
function custom_rewrite_rules( $wp_rewrite ) {
// This rule will will match the post id in %postname%-%post_id% struture
$new_rules[\'ico/^([^/]*)/?\'] = \'index.php?p=$matches[1]\';
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
return $wp_rewrite;
}