Suporte » Desenvolvendo com WordPress » Efetuar Query para excluir eventos passados

  • saulolago

    (@saulolago)


    Boa tarde galera, estou com uma dúvida que talvez vocês possam me ajudar. Para entender melhor, utilizando um plugin criei um modulo de eventos (assim que chamamos por aqui) esse modulo de eventos na verdade é como se fosse um plugin de eventos, onde o usuário registra la tudo bonitinho. Fizemos aqui também uma opção para que caso o evento passe ele desaparece, não fique listado. Mas fizemos isso usando um if no php. Mas o problema é que, na verdade na verdade o evento nao está excluído e sim escondido, ou seja, quando reduzimos a paginação do wordpress para por exemplo 2 itens por página, o item escondido fica listando. Como não consegui fazer isso ou pesquisar até espero a ajuda de voces. segue abaixo o código:

    <div class="modulo_agenda modulo_agenda_lista">
    						<?php if ( have_posts() ) : ?>
    						<header class="archive-header">
    							<div class="h1_center">
    								<h1><?php post_type_archive_title(); ?></h1>
    							</div>
    						</header>
    						<div class="agendaLista">
    						<?php //query_posts('post_type=agenda&meta_key=dia_e_hora_do_evento_data_do_evento&orderby=meta_value&order=ASC') ?>
    						<?php $posts = query_posts( $query_string . '&meta_key=dia_e_hora_do_evento_data_do_evento&orderby=meta_value&order=ASC' ); ?>
    							<?php while ( have_posts() ) : the_post(); ?>
    							<?php
    								$data_atual = date('Y-m-d');
    								$data_us = implode('-',array_reverse(explode('/', get('dia_e_hora_do_evento_data_do_evento'))));
    								$data_us_fim = implode('-',array_reverse(explode('/', get('dia_e_hora_do_evento_data_do_fim_do_evento'))));
    								if ((strtotime($data_us) > strtotime($data_atual)) or (strtotime($data_us_fim) >= strtotime($data_atual)) ) {
    
    							?>
    							<div class="agendaListaItem <?php if (strtotime($data_us_fim) >= strtotime($data_atual) and strtotime($data_us) < strtotime($data_atual)) echo 'acontecendo'; ?>">
    								<div class="data">
    									<?php
    									$data = explode ('/', get('dia_e_hora_do_evento_data_do_evento'));
    									$meses = array("","Janeiro","Fevereiro","Marco","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");
    									$mes_abrev = $meses[(int)$data[1]];
    									echo '<span class="ano">' .$data[2] . '</span>';
    									echo '<span class="dia">' .$data[0] . '</span>';
    									echo '<span class="mes">' .$mes_abrev . '</span>';
    									?>
    								</div>
    								<div class="titulo">
    									<a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'criarstudio' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
    								</div>
    								<div class="local"><span>Local:</span> <?php echo get('detalhes_da_localizacao_nome_do_local_de_realizacao') ?></div>
    								<div class="horario"><span>Hor&aacute;rio:</span> <?php echo get('dia_e_hora_do_evento_horario_do_inicio') ?>Hrs</div>
    								<div class="leiamais"><a href="<?php the_permalink(); ?>">+ Sobre o Evento</a></div>
    							</div>
    						<!-- .entry-content -->
    
    						<?php } endwhile; ?>
    
    						</div>
    
    						<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
    
    					</div>
    					<?php endif; ?>

Visualizando 1 resposta (de um total de 1)
  • Saulolago, uma opção seria criar uma rotina com o wp_schedule_event para colocar o post como rascunho ou deletá-lo, com esse mesmo if que usou.

    Veja se ajuda.

Visualizando 1 resposta (de um total de 1)
  • O tópico ‘Efetuar Query para excluir eventos passados’ está fechado para novas respostas.