我有一个名为patch
的自定义帖子类型。每个补丁都有一个元键version
,此元的值始终是唯一的。例如:
我想制作特殊的永久链接结构,以便这个URL结构可以访问每个补丁:
www.site.ru/patch/%version%
因此,www.site.ru/patch/1.0.1
会导致特定的补丁帖子元关键version
值等于1.0.1
。
我该怎么办?
我想应该有办法以某种方式自动将%version%
转换为像index.php?p=*needed_patch_post_id*
这样的结构。
答案 0 :(得分:0)
尝试使用此代码:
add_action('init', 'rb_add_rewrite_rules');
add_filter('post_type_link', 'rb_create_permalinks', 10, 3);
function rb_add_rewrite_rules() {
global $wp_rewrite;
$wp_rewrite->add_rewrite_tag('%version%', '([^/]+)', 'version=');
$wp_rewrite->add_permastruct('patch', 'patch/%version%/', false);
}
function rb_create_permalinks($permalink, $post, $leavename) {
$no_data = 'no-speciality';
$post_id = $post->ID;
if($post->post_type != 'patch' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft')))
return $permalink;
$var1 = get_post_meta($post_id, 'version', true);
$var1 = sanitize_title($var1);
if(!$var1) { $var1 = $no_data; }
$permalink = str_replace('%version%', $var1, $permalink);
return $permalink;
}
我希望这对你有用。感谢。