Support » Fixing WordPress » A LIST OF ENTIRES PRIOR TO TODAY!

  • Resolved ryanoz

    (@ryanoz)


    How do I display a list of entries made before the current day. If today is April 4th, 2007.. I want to show a list of entires made before April 4th, 2007.

    Someone that knows this PHP/wordpress language help me out here please. This is like having to learn a new language just to say hello.

Viewing 14 replies - 1 through 14 (of 14 total)
  • For those following along from home, we’re apparently starting over. Earlier discussions can be found here: http://wordpress.org/support/topic/111969?replies=19

    hmm,
    now I have no hope in resolving this…
    even the moderator doesn’t even know how.

    Not to be offensive, but that’s the most ignorant thing I’ve read all day.

    You started a new branch of an existing topic. I, as a MODERATOR (which is not to be confused with DEVELOPER or EXPERT) gave folks a link to the previous branch.

    As a VOLUNTEER, I answer the questions I know. What I know is not inclusive of all things WordPress.

    yes I understand why you made the post.
    I’m simply saying, that what I need to do is (or should be) very simple. You as a MODERATOR, who is obviously paying close attention to my problem; has not provided any type of help/information. Which is fine, I know MODERATOR doesn’t mean EXPERT (not that this calls for an expert).
    Surely as MODERATOR you would have something to offer on this simple topic, or maybe wordpress IS just too complicated for me.

    Moderator Samuel Wood (Otto)

    (@otto42)

    WordPress.org Admin

    The short answer is that there’s no easy way to do it because nobody’s ever wanted to do that before. WordPress has a lot of code to get posts for particular days, months, years, but nothing to get a range of dates that excludes “today”.

    Just because you think it should be simple doesn’t mean that you are correct. 😉

    Anyway, the only way I can think to do it would be to use a custom filter on the WHERE clause.

    function exclude_today($where)
    {
    $current_month = date('m');
    $current_year = date('Y');
    $current_day = date('j');
    $where .= " AND (YEAR(post_date)<>$current_year OR (YEAR(post_date)=$current_year AND MONTH(post_date)<>$current_month) OR (YEAR(post_date)=$current_year AND MONTH(post_date)=$current_month AND DAYOFMONTH(post_date)<>$current_day ) )";
    
    return $where;
    }

    Before you do your query_posts() or whatever, you do this:
    add_filter('posts_where','exclude_today');

    After your query_posts, you need to turn off the filter again (so as not to mess up any other Loops), so you do this:
    remove_filter('posts_where','exclude_today');

    That might do the trick. No need for funky loop code then.

    Otto, thank you for replying

    The short answer is that there’s no easy way to do it because nobody’s ever wanted to do that before.

    Seriously? Its just a list of previous entries, I see them all the time. Oh well… guess it is more complicated than I thought, obviously.
    I’ll try out the solution you provided here, hopefully I’ll get it right.
    Thanks again!

    Moderator Samuel Wood (Otto)

    (@otto42)

    WordPress.org Admin

    Seriously? Its just a list of previous entries, I see them all the time.

    No, that’s not the same thing at all. You don’t want a list of previous entries; you want a list of entries not made on a specific date, which is a whole other kettle of fish.

    Also, my original solution above was incorrect (nice for a first try, though) , try the modified version (I changed the above code).

    Otto,
    I put your code in and its showing only the last entry,
    which is today. I was assuming you meant your code goes in my index.php. So this is what I have…

    <ul>
    <?php
    function exclude_today($where)
    {
    $current_month = date('m');
    $current_year = date('Y');
    $current_day = date('j');
    $where .= " AND (YEAR(post_date)<>$current_year OR (YEAR(post_date)=$current_year AND MONTH(post_date)<>$current_month) OR (YEAR(post_date)=$current_year AND MONTH(post_date)=$current_month AND DAYOFMONTH(post_date)<>$current_day ) )";
    
    return $where;
    }
    ?>
    <?php add_filter('posts_where','exclude_today'); ?>
    <?php get_posts('showposts=4&order=DESC&offset=1'); ?>
    
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?>
     <span><?php the_time('F jS, Y') ?> - <?php wp_link_pages(); ?> <?php comments_number(__('<strong>0</strong> Comments'), __('<strong>1</strong> Comment'), __('<strong>%</strong> Comments')); ?></span></a></li>
    
    <?php remove_filter('posts_where','exclude_today'); ?>
    </ul>

    you can’t assume I know anything about this stuff, I need the exact code to copy and paste that will work. I’ll pay you (or anyone) for it somehow (paypal?), I don’t care; I just need to get past this.

    Moderator Samuel Wood (Otto)

    (@otto42)

    WordPress.org Admin

    Try this:

    <ul>
    <?php
    function exclude_today($where)
    {
    $current_month = date('m');
    $current_year = date('Y');
    $current_day = date('j');
    $where .= " AND (YEAR(post_date)<>$current_year OR (YEAR(post_date)=$current_year AND MONTH(post_date)<>$current_month) OR (YEAR(post_date)=$current_year AND MONTH(post_date)=$current_month AND DAYOFMONTH(post_date)<>$current_day ) )";
    return $where;
    }
    add_filter('posts_where','exclude_today');
    query_posts('showposts=4&order=DESC');
    remove_filter('posts_where','exclude_today');
    while (have_posts()) : the_post();
    ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?>
     <span><?php the_time('F jS, Y') ?> - <?php wp_link_pages(); ?> <?php comments_number(__('<strong>0</strong> Comments'), __('<strong>1</strong> Comment'), __('<strong>%</strong> Comments')); ?></span></a></li>
    <?php endwhile; ?>
    </ul>

    This is just untested code that I’m writing on the fly, mind you. Might not be 100% correct.

    Otto,
    Bingo! It works perfectly!
    I have no idea how it works, but all I care about is is that it is working.
    Thank you so much

    Otto,
    Hate to bring this back, but I need a slight modification.
    Hopefully your still around.
    This worked perfectly, but it turns out that I misinterpreted what I really need to do here.
    This shows a list of entries prior to the current date. However, what I should have said is I need to show a list of entries prior to the date of the last entry (or entries).
    So if I have 3 entries made on April 17th, 2007…
    I need to show a list of say 4 entries prior to April 17th, 2007.
    Hope this makes sense. I’ll be reading the docs and searching the forum in the meantime.

    Just to be clear…
    This would just be a list of previous entries,
    excluding the date of the last entry (or entries).

    IT could be there is only 1 entry made on April 17th, 2007,
    or there could be 5 entries on April 17th, 2007.

    So I would want to show a list of entries made prior to April 17th, 2007.

    This is so frustrating because I don’t know how to do it.

    This is as close to a solution I have come:
    http://wordpress.org/support/topic/94914?replies=3

    But its not working. After reading the above topic. This is what I have in my sidebar.php…

    <ul>
    <?php
    /* yesterday's headlines */
    Function yesterdayHeadlines(){
    $yesterday = date('U') - 86400;
    $yesterday = getdate($yesterday);
    $current_day = zeroise($yesterday['mday'],2);
    $current_month = zeroise($yesterday['mon'],2);
    $current_year = $yesterday['year'];
    query_posts("year=$current_year&monthnum=$current_month&day=$current_day&order=DESC&showposts=3");
    ?>
    
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?><span><?php the_time('F jS, Y') ?> - <?php wp_link_pages(); ?> <?php comments_number(__('<strong>0</strong> Comments'), __('<strong>1</strong> Comment'), __('<strong>%</strong> Comments')); ?></span></a></li>
    <?php endwhile; else: ?>
    
    <?php endif; ?>
    <?php } ?>
    </ul>

    Anybody?

    Suggestions? References? Anything?

    Are all blogs this difficult to customize?
    Should I be using something else?

    Just a list of entries prior to the last entry date.
    Sounds simple, but I haven’t got a clue.

Viewing 14 replies - 1 through 14 (of 14 total)
  • The topic ‘A LIST OF ENTIRES PRIOR TO TODAY!’ is closed to new replies.