Plugin som arkiverer poster etter en viss dato

TorsteinO

Art Director & grunder
Egentlig bare tull med en plugin for det der, mye greiere med en ekstra liten loop, jeg har gjort det sånn i et par kalendere jeg har laget:
PHP:
$today = date("Ymd") ;
query_posts("post_type=calendar&orderby=meta_value&meta_key=dato&order=ASC&meta_compare=>=&meta_value=$today");

Her har jeg da en custom post type som heter "calendar", og et custom field der datoen for happeningen skrives inn som YYYYMMDD

Da forsvinner ikke posten totalt, men den vil forsvinne fra kalenderen, noe som jo egentlig er bra på flere måter, f.ex. hvis det har vært noen som har linka til den

Så på ganske mange event-plugins, men fant ingen som funka helt som det vi ville ha
 

Tonny Kluften

Administrator
En annen løsning, ikke testet.
Fra Wordpress Code: Expire Posts to Archive using Custom Fields | Custom Wordpress and CMS design based in the North East of England

PHP:
***PUT THIS INSIDE THE LOOP, FIRST THING***

<?php  //to check against expiration date;
$timestamp = strtotime("now + 8 hours"); 
$currentdate = date('YmdHis', $timestamp);
$expirationdate = get_post_custom_values('expiration');
if (is_null($expirationdate)) { 
                    $expirestring = '30005050235959'; //MAKE UN-EXPIRING POSTS ALWAYS SHOW UP;
} else {
 
if (is_array($expirationdate)) {       
                                      $expirestringarray = implode($expirationdate);       
                                                }
$markup = array("/",":"," ");
$expirestring = str_replace($markup,"",$expirestringarray);
} //else
if (( $expirestring > $currentdate ) || (is_archive())) { ?>

***THEN PUT THE FOLLOWING LINE AT THE VERY END OF THE LOOP***

<?php } //end if for expiration; ?>
 

TorsteinO

Art Director & grunder
Det du vil gjøre er vel at konsertene skal forsvinne fra lista når de har vært? Det er det denne snutten gjør.

Sett en dato i et custom field (f.ex. dato for konserten), når denne datoen passerer, så forsvinner eventen/konserten/posten/*hva-som-helst* fra lista over disse. Jeg brukte det til å lage en "kalender" for teaterforestillinger, egentlig ikke noen større forskjell fra konsertlista di.
 

Tonny Kluften

Administrator
Så posten forsvinner fra forsiden, men blir liggende i arkivet ikke sant? Og man må bruke YYYYMMDD uansett hva man setter på datovisning i admin?

Fremgangsmåten er å lime loopen inn og så lage et custom field med navn calendar og verdi YYYYMMDD?
 
Sist redigert:

TorsteinO

Art Director & grunder
Yep, i bunn og grunn. Den loopen/queryen styrer bare hva som vises akkurat der, den gjør/endrer ingenting med selve postene/hva som "egentlig" er publisert.

Det som er greia med å vise datoen på denne måten, er at den da tilsvarer akkurat hvordan det vanlige titallssystemet funker. Du kan vel fint dele den opp med .,- eller liknende, men det viktige er "YYYY", "MM" og "DD" i den rekkefølgen. Da blir det egentlig som et hvilket som helst åttesifra tall, og dermed kan man sortere etter det uten noe mer om og men. Dermed er det igjen mulig å lagre dagens dato som en variabel, som vi så kan bruke i en query, og avhengig av hva som er størst av dagens dato og datoen vi har skrevet inn i et custom field vil posten enten vises, eller ikke :)
 
Topp