How do I make wp_get_archives show me months where only pages were created?

I am creating a plugin and have a problem,

this code gives my all months that post were added:

Read More
        <select name="sdate" id="sdate">
    <?php wp_get_archives('format=option'); ?>
        </select> 

the problem is that i dont get dates that only pages were added.

basicaly, i want dropdown thats gonna list every year+month (for example “September 2010”) that something was added with value like “year-month” (for example “2010-05”)

Something that you can see working on WordPress Export page, but copied code is not working for me.

Related posts

Leave a Reply

2 comments

  1. The wp_get_archives() function runs a filter on its WHERE clause–it’s called getarchives_where. You could use this to modify the query to only include pages rather than posts (which is the hard-coded default).

    I haven’t tested this yet, but try it out:

    add_filter('getarchives_where','my_archives_filter');
    
    function my_archives_filter($where_clause) {
    
      return "WHERE post_type = 'page' AND post_status = 'publish'";
    
    }
    

    Then, just use the wp_get_archives function the way you normally would.

    Obviously, this will affect the wp_get_archives function sitewide, so if you use wp_get_archives for grabbing a post archive somewhere else on your site, you’ll have to wrap the add_filter in something that recognizes the context.

  2. So, here is code that make it all work(display archive dropdown list with dates that anything has been added):

        add_filter('getarchives_where','my_archives_filter');
    
        function my_archives_filter($where_clause='') {
            return "";
        }
    
    
            <select name="sdate" id="sdate">
                   <?php wp_get_archives('format=option'); ?>
            </select>
    

    Thanks MathSmath!