» »

Wordpress - izpis postov glede na datum

Wordpress - izpis postov glede na datum

JayKay ::

Imam naslednji problem:
na strani izpisiujem poste iz določene kategorije (id=5) in jih sortiramo po datumu vnešem v custom field start_date (gre za seznam eventov, tako da ne pride v poštev datum posta). sortiranje dela bp takole:
<?php query_posts('cat=5&order=asc&orderby=meta_value&meta_key=start_date');?>


sedaj pa bi rad,da mi samodejno iz izpisa izključi poste, ki imajo datum starejši od trenutnega.
tako imam:
<?php $today = get_the_date(); ?>

<?php query_posts('meta_key=start_date' > '$today');?>

tole načeloma izpiše samo novejše poste, ampak iz vseh kategori, ne samo iz 5, kar mi ni ok.
sem probal tudi
<?php query_posts('cat=5&meta_key=start_date' > '$today');?>
pa ne pomaga.

Kakšne ideje?

Ziga Dolhar ::

Zgornja koda zagotovo ne deluje pravilno, say '$today' ne izpiše vrednosti $today, ampak dobesedno pripiše '$today' :).

Poskusi raje posredovati podatke v arrayu. Se mi zdi, da boš moral v zgornjem primeru v querystring dodati še poseben argument za primerjalni operator ter primerjalni argument.

Gl. npr. tole:

http://wordpress.org/support/topic/wp_q...
https://dolhar.si/

Gandalfar ::

wp 3.2 ti omogoca kompleksne lookupe po meta_key in imas lahko vec pogojev


$wp_query = new WP_Query( array (
				'orderby' => 'meta_value',
				'order' => 'ASC',
				'meta_value' =>  $start_date,
				'meta_compare' => '>='
                    itd.
));


in potem:

while ($wp_query->have_posts()) : $wp_query->the_post();


pa ne pozabi wp_querya resetirat potem, ko ga nehas uporabljat da ti bo se kaj drugega na wp-ju delalo ;)

JayKay ::

ma problem je ker start_date pobira input yyyy-mm-dd get_the-date pa v j F Y. start_date pol pretvorim za izpis
<?php $datum = get_post_meta($post->ID, 'start_date', true); $test = explode('-',$datum); echo date_i18n('j F Y', mktime(0,0,0,$test[1],$test[2],$test[0])); unset($test); ?>


kar bi bilo potrebno, je da poberem trenuten datum v yyyy-mm-dd, ga shranim v neko spremljivko recimo &today in to spremenljivko pol primerjam s start_date in izpisujem poste kjer je start_date > today

Zgodovina sprememb…

  • spremenil: JayKay ()

PaX_MaN ::

kar bi bilo potrebno, je da poberem trenuten datum v yyyy-mm-dd, ga shranim v neko spremljivko recimo &today

$today = date("Y-m-d");?

JayKay ::

ok probal sem
<?php $today = date("Y-m-d");?>
     <?php query_posts('meta_key=start_date&meta_compare=>=&meta_value=' . $today . '&orderby=meta_value&order=ASC');?>

in tole
 <?php 
        $query = new WP_Query(
        array( 
          'post_type'   => 'post', 
          'meta_key'    => 'start_date',
          'order_by'        => 'start_date',
          'order'       => 'asc',   
          'meta_query'  => array(
             array(         
              'key'     => 'start_date',  
              'value'   => date("Y-m-d"),  
              'compare' => '>',          
              'type'    => 'NUMERIC'         
            ) 
           ) 
          ) 
        ); 

 ?>


nada

Zgodovina sprememb…

  • spremenil: JayKay ()

PaX_MaN ::

Poskusi z:
$query = new WP_Query( array( 'meta_key' => 'start_date', 'meta_value' => date("Y-m-d"), 'meta_compare' => '<=');

JayKay ::

zaklepaj manjka,ampak nope ne pali.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Zanimiv ...hm... problem

Oddelek: Programska oprema
282241 (1736) poweroff
»

Wordpress custom plugin

Oddelek: Izdelava spletišč
16919 (764) Gandalfar
»

[Java] Evidenca delovnega časa - Java v navezi z Accessom

Oddelek: Programiranje
393183 (2403) c0dehunter
»

[bat datoteke] Trenutni datum in ura

Oddelek: Programiranje
112343 (2100) darkolord
»

HTML forma in datum

Oddelek: Izdelava spletišč
131706 (1442) Muzo

Več podobnih tem