Support » Fixing WordPress » How to show only one category on front page

  • Resolved ga kvarud


    I have what is probably a rather simple blog, sat up on my own domain.
    The front page shows all the posts, then the sidebar shows a list of categories, and by clicking on this, only post from that category is shown.
    I would like to have everything like this, except that the default page should show only posts from one category. Is this possible?
    (That is, I want to show the same result as


Viewing 6 replies - 1 through 6 (of 6 total)
  • Place this just before your loop in index.php to show Posts in Category ID = 20:

    <?php query_posts ($query_string . '&cat=20'); ?>

    Stepping Into Template Tags
    Stepping Into Templates
    Template Hierarchy
    Template Tags

    Thread Starter ga kvarud


    Thank you so much. I struggled a bit until I found which index.php it was, and where the loop was in the file, but i did find it, and it did work. (For other newbies: It was the index.php in the tarski (my theme) directory, and in the else-clause of the first if.)

    Again: Thank you so much for your answer.


    My question is a bit related with your question so I decided to put my question here instead of making new topic. I have read The Loop, but I found it a lil bit confusing. Maybe some explanation from wp user more understandable for me 🙂

    What should I do to make multiple loops for the front page with different condition on each loops.
    for instance, I want to make first loop containing posts from child of category A, and the second loop shows posts from category B ?


    I am somewhat of a WordPress newbe as well and don’t understnd exactly where to put this code. I have read several places where you put some code “just before the loop” but when I do that in this case every category I go to only the category I selected shows not just on the front page. Can you show me an example bit of code as to where in the in the index.php file this code goes. Thanks.

    Regarding the above, this part is a little pointless.

    <?php $posts=query_posts($query_string . '&cat=8'); ?>

    In might aswell be..

    <?php query_posts($query_string . '&cat=8'); ?>

    As there’s absolutely no benefit or reasoning to adding the query_posts line onto a variable as you have done…

    The other steps I see in many sites are waste of time and so complicated, and after doing everything the pagination will not work as to be.

    Pagination will work if you setup the postdata and/or add the paging variable into the query_posts parameters (depending on the type of query you use, query_posts, foreach loop, etc)…. Complicated really is subjective, you either understand the instructions given or you don’t.

    These “How do i limit to one category” questions have been asked numerous times on the forum, so amongst the pages of instructions and threads on this forum i do find it a little hard to understand how even a non-coder struggles.

    1. Determine which file handles the page you want to effect posts on. – Nice easy way to determine which file handles what.
    2. Open said file, and add a conditional
    3. Example

    If index.php handles various cases for you site (let’s say it handles the home/front page, but also handles other areas to)..

    You’d find the loop first…

    If you don’t have a query_posts line, you can it in, else add to it as Michael showed by preserving the existing query string.

    Then add a conditional before or around it..’s some examples (much like Michaels initial one).

    if(is_home()) {
    query_posts( $query_string . '&cat=1' );
    if(is_front_page()) {
    query_posts( $query_string . '&cat=1' );

    If you have a query posts line already in your file, then you just add an else condition to the above examples..

    else {
    // If you had a query posts call
    // query_posts( $query_string );
    // or

    I could go much more in-depth, but i feel i’d only be repeating what’s already been discussed numerous times in various other threads.

    Hi, I have the following code in my footer.php

    <?php recent_posts(‘limit=4’); ?>

    displaying 4 of my most recent posts.

    But I only want it to show from Category 1. Please advice, what changes to the above php code do I need to do?

    Many thanks.


Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘How to show only one category on front page’ is closed to new replies.