Tell me more ×
WordPress Answers is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I'd like to use a custom post type archive as a site's front page, so that

 http://the_site.com/

is a custom post type archive displayed according to my archive-{post-type}.php file.

Ideally I would like to alter the query using is_front_page() in my functions.php file. I tried the following, with a page called "Home" as my front page:

 add_filter('pre_get_posts', 'my_get_posts');
 function my_get_posts($query){
     global $wp_the_query;
     if(is_front_page()&&$wp_the_query===$query){
        $query->set('post_type','album');
        $query->set('posts_per_page',-1);
     }
     return $query;
 }

but the front page is returning the content of "Home" and seems to be ignoring the custom query.

What am I doing wrong? Is there a better way, in general, of going about this?

share|improve this question

1 Answer

up vote 8 down vote accepted

after u have set a static page as your home page you can ad this to your functions.php and you a good to go. This will call the archive-POSTTYPE.php template correctly as well.

add_action("pre_get_posts", "custom_front_page");
function custom_front_page($wp_query){

    if($wp_query->get('page_id') == get_option('page_on_front')):

        $wp_query->set('post_type', 'CUSTOM POST TYPE NAME HERE');
        $wp_query->set('page_id', ''); //Empty

        //Fix conditional Fucntions like is_front_page or is_single ect
        $wp_query->is_page = 0;
        $wp_query->is_singular = 0;

    endif;

}
share|improve this answer
You nailed it, dude! Terima kasih banyak! – Isaac Lubow Oct 12 '11 at 3:09

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.