WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In wordpress you have a few 'default' archive URL's. Like for example: http://www.mydomain.com/2011/ generates an overview of the posts of (only) that year.

If you have an category blogs the url http://www.mydomain.com/blogs/ generates an overview of all the posts within that category. (Spread over multiple pages)

Now is my question is there any link which generates an overview of all posts (spread over multiple pages) starting with the newest first and going back in time?

So not like the 2011 url, which only fetches from this year, but go's further back in time when applicable.

My current permalink structure is:



share|improve this question

migrated from stackoverflow.com Oct 2 '11 at 14:00

This question came from our site for professional and enthusiast programmers.

You're basically asking for the Blog Posts Index, which queries all blog posts, ever.

If your site is configured to display the Blog Posts Index on the front page, then the URL you're after is simply home_url().

If your site is configured to display a static Page on the front page, and to display blog Posts on static Page "Foobar", then the URL you're after is home_url( '/foobar' ) (or, more generically: home_url( '/' . get_option( 'page_for_posts' ) )).

The Blog Posts Index is a paginated archive index, so to get to the pages for older posts, simply append /page/#/, e.g. example.com/page/2/ or example.com/blog/page/2/.

share|improve this answer

This may be an old question, but all the answers here are incorrect.

If the front page is set to a static page, and another page is set to the blog page, this will dynamically fetch and echo the URL for the blog archive page (i.e. blog index page)...

<?php echo get_permalink( get_option( 'page_for_posts' ) ) ?>

This first fetches the page id for your blog page (from your site options), then fetches the permalink for that page id.

From a coding standpoint, WordPress assumes that your homepage and your blog page are one and the same. This is vestigial functionality from the days when WordPress was literally just a blog system, and not the full-featured CMS it has become. As such, you cannot generally trust the naming convention of WordPress's core functions.

FOR EXAMPLE: home_url() will generally return your homepage, whatever it is... which may not necessarily be your main blog archive/index. However, the conditional is_home() function returns true only for your main blog archive not your actual homepage (which is tested using is_front_page()).

share|improve this answer

http://myblog.com/?post_type=post for a list of all posts, probably sorted in descending order by date.

Specifying post_type in the query vars signals to WP_Query that you're looking for an archive page, so it will go through your template hierarchy looking first for archive-{post_type}.php and if that doesn't exists, archive.php in order to display the posts.

Do note that the number of posts displayed will still be guided by posts_per_page, which if not explicitly set, would use the setting in your Admin control panel under Settings > Reading > 'Blog pages show at most' # posts

share|improve this answer

Your Answer


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