wordpress 从 2.9 开始加入的自定义文章类型功能(custom post type),给二次开发带来了很大方便,我们完全可以用 wordpress 构建更加复杂的站点。但是 wordpress 却不能在后台设置主页和 rss 里默认的文章类型,这是一个硬伤。不过我们可以通过 wp 的内部开发接口来修改默认文章类型。代码很简单,如下:
// 只需要改变首页显示的文章类型
add_filter( 'pre_get_posts', 'my_get_posts' );
function my_get_posts( $query ) {
if ( is_home() && !is_singular() && $query->is_main_query() )
$query->set( 'post_type', array( 'sentence' ) );
return $query;
}
如果除了首页以外,你还需要改变 rss 里的文章类型的话,请把
if ( is_home() && $query->is_main_query() )
改成:
if ( (is_home() && $query->is_main_query()) || (is_feed() && !isset($_request['post_type'])) )