我不确定这是否可行,但请容忍我。我想我已经走到一半了。
首先是一些背景知识:我正在使用WordPress中的内置层次结构来形成帖子类型之间的关系。我有一个叫做连续剧的帖子类型,里面有电视连续剧的信息。我有另一种称为content的帖子类型,它包含特定剧集的信息,我使用posts数据表中内置的post\\u父字段来指向一个系列。
因此,基本上,我正在尝试对内容进行类似的重写/永久链接结构:
http://website.com/%series-name%/%content-type%/%postname%
内容类型是附加到具有几个术语的内容的分类法;插曲、电影和特别节目。
我防止重写冲突的想法是使用这段代码,灵感来自我之前提出的一个问题here
add_filter( \'rewrite_rules_array\', \'content_rewrite_rules\',10,1);
function content_rewrite_rules( $rules ) {
$custom_rules = array();
$type_terms = get_terms(\'veda_content_type\', array(\'hide_empty\'=>false));
if(!is_wp_error($type_terms) && sizeof($type_terms) > 0) {
foreach ($type_terms as $term) {
$custom_rules[\'([^/]+)/\'.$term->slug. \'/([^/]+)/?$\'] = \'index.php?post_type=veda_content&series_name=$matches[1]&pagename=$matches[2]\';
}
}
return array_merge($custom_rules , $rules);
}
使用重写分析器,它似乎可以正常工作,只是它显示series\\u name query\\u var被红色划掉了,我不知道这是什么意思。
我的问题是:有没有其他更有效的方法来创建我想要的永久链接?还有,划线是什么意思?
编辑:我想看看重写是否有效,我的服务器是否给了我错误的请求