Recent Wordpress Posts in Sidebar

I had tried out the code Recent Wordpress Post in Sidebar suggested by EngLee. Although the code did shows the recent posts correctly but some functions (eg: is_page() and is_home() are not working properly when it is after the portion of the code. My guess is the wordpress loop in the code modified value of some global variables.

I have a workaround for it. Before using the is_home() or is_page() function, I save the returned in a temporay variable, call the recent posts loop, and use the temporary variable later when neccessary.

Today when I search for wp_get_archives() in Wordpress WIki, I found that I can generate recent wordpress posts in the more easier way. Here is the code:


<li>
	<h2>Recent Posts</h2>
	<ul>
		<?php wp_get_archives('type=postbypost&limit=10'); ?>
	</ul>
</li>

Simple and tidy :)

Share this article

  • digg
  • del.icio.us
  • Fark
  • Furl
  • Spurl
  • BlinkList
  • YahooMyWeb
  • Simpy
  • blinkbits
  • Digg
  • Facebook
  • Google
  • Live
  • Technorati
  • blogmarks

7 Responses to “Recent Wordpress Posts in Sidebar”

  • EngLee
    January 5th, 2006, 9:21 am

    LOL. That function is so much easier!

    As for the is_home() or is_page() functions, I also faced the same problem. But I fixed it another way.

    if (is_home()) {

    } else if (is_page()) {

    }

    That would do the job. This means that if you want something to appear in home and page, you have to write it in both cases.

  • LcF
    January 5th, 2006, 1:48 pm

    wordpess wiki is OLD. you should visit codex.wordpress.org for documentation.
    Here is the updated documentation for wp_get_archives:
    http://codex.wordpress.org/Template_Tags/wp_get_archives

  • Dawn Isaac
    January 20th, 2006, 12:59 pm

    Awesome Thanks.

  • uri
    March 21st, 2006, 9:02 pm

    Hi,
    could you explain your workaround for the is_page() disfunctioning after using EngLee’s method? I’m only a beginner with PHP so I couldn’t understand how to solve it from the explanations you both gave here.
    My problem is like that: I have a footer which can be wide (if it is a wide page) or narrow (for narrow page). I used EngLee’s method in this page:
    http://uriashi.com/?page_id=38
    (in the left sidebar, you can see I even used the_excerpt_rss() instead of the_title() in order to display the images that I put for each post)
    in the footer there’s an conditional if that says something like “if it is page 38 - display the wide footer”, but as you can see, after implementing the query_posts it messed it as you said and the footer displayed is the narrow one.
    thanks in advance,
    uri

  • szehau
    March 21st, 2006, 9:16 pm

    Hi uri,

    Let say you have a code does something like this:

    // Call query_posts

    query_posts ("whatever");

    if (is_page()) {
    // dispaly A
    } else {
    // display B
    }

    Instead of doing that, change to this:

    // Save whatever is_xxx() function

    $is_page = is_page();
    $is_post = is_post();

    // Call query_posts

    query_posts ("whatever");

    if ($is_page) { // the different is here
    // dispaly A
    } else {
    // display B
    }

    if ($is_post) { // the different is here
    // dispaly C
    } else {
    // display D
    }

    Hope this will help :)

  • uri
    March 21st, 2006, 10:31 pm

    It does! thanks a lot!

  • PeterVk
    April 13th, 2008, 4:22 pm

    I know this post is a bit old - but thanks! Worked perfectly. Wish I’d found this earlier in the morning…

 

Leave a Reply