在Wordpress上处理条和URL

时间:2018-09-28 21:05:44

标签: php wordpress .htaccess

有没有办法在wordpress上创建“虚拟”子弹?

例如: 我创建了一个名为“ year”的自定义帖子类型,该子句是/ year /。创建此自定义帖子类型仅是为了生成子弹(/ year /)。我在此自定义帖子类型中没有任何帖子。

我想输入url / year / 1988 /,然后Wordpress调用single.php文件。 如果我今天这样做,wordpress将返回404,因为1988年需要成为自定义帖子类型(年份)内的帖子。

我需要一些.php代码或.htaccess来执行类似的操作:如果在/ year /加载后键入某些内容,则由于单个文件无法输入,所以我无法为1901、1902、1903 ...和我将获取这些信息并进行必要的查询。

1 个答案:

答案 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使用的保留查询变量。而且不要忘了冲厕所,我的意思是重写规则;)。