it-swarm.com.de

Wie kann ich mir mit wp_get_archives Monate anzeigen lassen, in denen nur Seiten erstellt wurden?

Ich erstelle ein Plugin und habe ein Problem,

dieser Code gibt alle Monate an, in denen der Beitrag hinzugefügt wurde:

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

das Problem ist, dass ich keine Daten bekomme, an denen nur Seiten hinzugefügt wurden.

grundsätzlich möchte ich eine Dropdown-Liste, die jedes Jahr + Monat (zum Beispiel "September 2010") auflistet, dass etwas mit dem Wert "Jahr-Monat" (zum Beispiel "2010-05") hinzugefügt wurde.

Etwas, das Sie auf der Wordpress-Exportseite sehen können, aber kopierten Code funktioniert bei mir nicht.

3
maniu

Die Funktion wp_get_archives () führt einen Filter für ihre WHERE-Klausel aus - sie heißt getarchives_where . Sie können diese Option verwenden, um die Abfrage so zu ändern, dass nur Seiten anstelle von Posts eingeschlossen werden (dies ist die fest codierte Standardeinstellung).

Ich habe das noch nicht getestet, aber probiere es aus:

add_filter('getarchives_where','my_archives_filter');

function my_archives_filter($where_clause) {

  return "WHERE post_type = 'page' AND post_status = 'publish'";

}

Verwenden Sie dann einfach die Funktion wp_get_archives wie gewohnt.

Offensichtlich wirkt sich dies auf die gesamte Funktion wp_get_archives aus. Wenn Sie also wp_get_archives zum Abrufen eines Post-Archivs an einer anderen Stelle auf Ihrer Site verwenden, müssen Sie den add_filter in etwas einschließen, das den Kontext erkennt.

5
MathSmath

Hier ist also der Code, mit dem alles funktioniert (Dropdown-Liste Archiv anzeigen mit Datumsangaben, an denen etwas hinzugefügt wurde):

    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>

Danke MathSmath!

0
maniu