我是wordpress的新手,我尝试做一个看起来像这样的网址重写
mysitename /采用/ petspecies / petname
一切正常,直到petname部分,我无法重定向到我的single-adoption.php文件,而无需在重定向网址中对page_id进行硬编码。
以下是我自定义帖子的方式:
register_post_type(
'adoption',
array(
'label' => 'Adoption',
'labels' => array(
'name' => 'Adoption',
'singular_name' => 'Adoption'
),
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'supports' => array(
'title',
'editor',
'thumbnail'
),
'has_archive' => true,
'rewrite' => array(
'with_front' => true,
'slug' => 'adoption',
),
)
);
register_taxonomy(
'espece',
'adoption',
array(
'label' => 'espece',
'labels' => array(
'name' => 'Espèce',
'singular_name' => 'Espèce'
),
'hierarchical' => false,
'rewrite' => array('slug' => 'adoption', 'with_front' => true)
)
);
这是我的重写规则
function adoption_cpt_generating_rule($wp_rewrite) {
$rules = array();
$terms = get_terms( array(
'taxonomy' => 'espece',
'hide_empty' => false,
) );
$post_type = 'adoption';
foreach ($terms as $term) {
$rules['^adoption/' . $term->slug . '/([^/]*)/?'] = 'index.php?post_type='.$post_type.'&page_id=4252&adoption=$matches[1]&name=$matches[1]';}
// merge with global rules
$wp_rewrite->rules = $rules + $wp_rewrite->rules;
}
add_filter('generate_rewrite_rules', 'adoption_cpt_generating_rule');
我的代码在重定向中使用硬编码的page_id工作正常,但是当我从网址中删除page_id时停止工作。
任何建议使它在没有page_id的情况下工作?