• Resolvido focustvaqui

    (@focustvaqui)


    Boa tarde, pessoal.

    Faço parte do site http://www.tvaqui.com.br e queria pedir uma ajuda para vocês.

    Entrando no endereço vocês poderão observar que nossa página principal tem blocos de notícias, como se fossem destaques. Eles são trocados aleatoriamente. O negócio é que posts antigos estão aparecendo, e isso nos incomoda. Pesquisei algum plugin que pudesse manter os posts aleatórios, mas que tivesse como determinar uma data limite para que fossem exibidos. Por exemplo, apenas posts dos últimos 7 dias. Encontrei esse aqui: http://rmarsh.com/plugins/random-posts/

    O negócio é que nosso webmaster não sabe como inserir o código do plugin nos blocos:

    <?php
    // Get categories/tags/authors 1 - 8
        $type = choose_tab_type();
       $post_class = 'post odd';
       $i = 1; $j = 1;
    ?>
    
    <div id="post-blocks" class="section">
    
    <?php
    
       foreach($op_type_arr as $key => $value) :
       if($value == true) :
          $query_var = clean_query($type, $value);
    query_posts("$query_var&showposts=1&orderby=rand");
    ?>
    
       <div class="block b<?php echo $j; ?>">
    
          <?php if(have_posts()) : while(have_posts()) : the_post(); ?>
    
             <div class="post <?php echo $post_class; ?>">
    
                <h2 class="section-header"><?php echo $value; ?></h2>
    
                <?php echo get_the_image_link(array('Thumbnail','Medium'),'thumbnail'); ?>
    
                <h3 class="post-title">
                   <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
                </h3>
    
                <div class="entry">
                   <?php the_excerpt(); ?>
                </div>
             </div>
    
          <?php
             $i++; $j++;
             if($j % 2 == 0) $post_class = 'even';
             else $post_class = 'odd';
          ?>
    
          <?php endwhile; endif; ?>
    
       </div>
    
       <?php endif; endforeach; ?>
    </div>

    Alguém tem alguma ideia de como se faz ou isso ou pode me indicar algum plugin que tenha uma função semelhante? Já contatei o criador desse plugin mas até agora ele não me deu uma resposta.

    Agradeço antecipadamente
    Marcelo Vilela

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Moderador Eduardo Zulian

    (@eduardozulian)

    Cara, como eu não conheço direito o tema Hybrid, não vai rolar de dar uma ajuda consistente. Porém, se voce quiser, como no seu exemplo, pegar randomicamente os posts dos últimos sete dias, até tem como pelo próprio query_posts e com uma ajudinha do PHP.

    Não vou detalhar a parada agora, mas vê se funciona. Troca essa área aqui:

    <?php
    
    	foreach($op_type_arr as $key => $value) :
    	if($value == true) :
        	$query_var = clean_query($type, $value);
    	query_posts("$query_var&showposts=1&orderby=rand");
    ?>

    Por essa:

    <?php
    	foreach($op_type_arr as $key => $value) :
    	if($value == true) :
        	$query_var = clean_query($type, $value);
            function filter_where($where = '') {
    	     $where .= " AND post_date > '" . date('Y-m-d', strtotime('-7 days')) . "'";
                 return $where;
    	}
    	add_filter('posts_where', 'filter_where');
    	query_posts("$query_var&showposts=1&orderby=rand&$query_string");
    ?>

    Acho que vai rolar, hein.

    Criador do tópico focustvaqui

    (@focustvaqui)

    Prezado Eduardo,

    Agradeço muito pela dica e vou repassá-la para o webmaster. Depois posto o resultado aqui.

    Abraços,
    Marcelo.

    Criador do tópico focustvaqui

    (@focustvaqui)

    Só funcionou no primeiro bloco =\ Nos outros apareceu isso

    Fatal error: Cannot redeclare filter_where() (previously declared in /home/tvaquic/public_html/site/wp-content/themes/options/includes/post-blocks.php:14) in /home/tvaquic/public_html/site/wp-content/themes/options/includes/post-blocks.php on line 14

    Tem mais alguma coisa que possamos fazer?

    Moderador Eduardo Zulian

    (@eduardozulian)

    Faz assim: coloca apenas a parte nova do código em cima disso aqui:

    foreach($op_type_arr as $key => $value)

    Não é o melhor uso ter isso aí no meio, acredito eu, mas deve rolar.

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Posts aleatórios’ está fechado para novas respostas.