我在wordpress网站上有一个名为“movie”的自定义类型。
如果用户键入此URL:http://mysite.com/1994
,<我想展示1994年出版的所有电影。
不幸的是,我得到了一个一致的404错误。当我打电话时get_post_type
在索引中。php(这是一个模板页面,因为我没有定义404.php),它显示“movie”,但我没有1994年的电影。。。至少现在还没有。
我穿了很长的衣服。
如果我让重写规则检查器检查URL,下面是http://mysite.com/1994
:
([0-9]{4})/?$ index.php?year=$matches[1] date
(.?.+?)(/[0-9]+)?/?$ index.php?pagename=$matches[1]&page=$matches[2] page
([^/]+)(/[0-9]+)?/?$ index.php?name=$matches[1]&page=$matches[2] post
我错过了什么?
SO网友:Stephan
这是我的问题的解决方案,感谢@Milo:
function wpa_date_archive_post_types( $query ){
if( $query->is_main_query() && $query->is_date() ):
$query->set( \'post_type\' , array( \'movie\' ) );
$query->set( \'year\' , 0 );
$query->set( \'tag\' , \'1994\' );
$query->set( \'post_status\' , array( \'publish\' ) );
endif;
}
add_action( \'pre_get_posts\', \'wpa_date_archive_post_types\' );