有没有办法在wordpress上创建“虚拟”子弹?
例如: 我创建了一个名为“ year”的自定义帖子类型,该子句是/ year /。创建此自定义帖子类型仅是为了生成子弹(/ year /)。我在此自定义帖子类型中没有任何帖子。
我想输入url / year / 1988 /,然后Wordpress调用single.php文件。 如果我今天这样做,wordpress将返回404,因为1988年需要成为自定义帖子类型(年份)内的帖子。
我需要一些.php代码或.htaccess来执行类似的操作:如果在/ year /加载后键入某些内容,则由于单个文件无法输入,所以我无法为1901、1902、1903 ...和我将获取这些信息并进行必要的查询。
答案 0 :(得分:0)
如果您只需要 (即mysite.org/years/1988
)才能在首页上使用此代码,则可以添加自定义重写标记和规则:
add_filter( 'init', function() {
add_rewrite_tag( '%years%', '([^&]+)' );
// Match the front page and pass years value as a query var.
add_rewrite_rule( '^years/([^/]*)/?', 'index.php?years=$matches[1]', 'top' );
});
然后使用新的查询var加载其他模板:
add_filter( 'template_include', function( $template ) {
if ( get_query_var( 'years' ) ) {
$new_template = locate_template( array( 'single.php' ) );
if ( !empty( $new_template ) ) {
return $new_template;
}
}
return $template;
});
我尝试使用year
,但是它不起作用,我认为这是Wordpress使用的保留查询变量。而且不要忘了冲厕所,我的意思是重写规则;)。