我正在重写自定义帖子类型的网址。
// Add rewrite rule
function custom_rewrite_basic() {
add_rewrite_rule(
'^movies/([^/]*)/([^/]*)/?',
'index.php?post_type=movies&movie_id=$matches[1]',
'top'
);
}
add_action('init', 'custom_rewrite_basic');
此主题中有关另一个问题的完整代码:WordPress - request post by url with custom field value
但是上面的代码只将我发送到archive.php页面。
网址示例:example.com/movies/157336/ ID是自定义字段,而不是实际的帖子ID。
当我将URL重写为index.php?post_type=movies&movie_id=$matches[1]&name=$matches[2]
时,wordpress会加载single.php
是的,我已经阅读了https://developer.wordpress.org/themes/basics/template-files/和https://developer.wordpress.org/themes/basics/template-hierarchy/但是它没有提到请求single.php或archive.php页面需要什么。
从试验和错误看,当GET参数p
或name
可用时,WordPress会加载single.php,否则会加载archive.php
我希望wordpress加载single.php或者在这种情况下加载single-movies.php而不是archive.php 我怎么能告诉wordpress呢?