我正在尝试修改自定义帖子类型“项目”的网址结构。
我希望网址结构如下:
http://localhost/project/%location%/project-name
%location%是与该帖子相关联的自定义字段值。
因此,如果我有一个名为'test'的帖子,其自定义字段值为'seattle',则网址将如下所示:
http://localhost/project/seattle/test
我已经半成品完成了以下内容:
function test_query_vars( $query_vars ) {
$query_vars[] = 'location';
return $query_vars;
}
add_filter( 'query_vars', 'test_query_vars' );
function test_init() {
$wp_rewrite->add_rewrite_tag( '%project%', '([^/]+)', 'project=' );
$wp_rewrite->add_rewrite_tag( '%location%', '([^/]+)', 'location=' );
$wp_rewrite->add_permastruct( 'project', 'project/%location%/%project%', false );
// Register post type
register_post_type( 'project',
array(
'labels' => $labels,
'public' => true,
'rewrite' => false,
'has_archive' => true,
'menu_position' => NULL,
'supports' => array ( 'title', 'editor', 'thumbnail', 'page-attributes', 'excerpt', 'comments', 'author' ),
'yarpp_support' => true,
)
);
}
add_action( 'init', 'test_init' );
这有一些问题:
我尝试使用以下内容修改查询,但仍然无效:
function test_parse_query( $query ) {
if ( 'project' == $query->query_vars['post_type'] ) {
$query->set('meta_query', array(
array(
'key' => 'project_location',
'value' => $query->query_vars['location']
)
));
}
return $query;
}
add_filter( 'parse_query', 'test_parse_query' );
任何帮助将不胜感激:)