2017-04-22 107 views
0

我已经看到大量的文章和周围如何做到这一点,但经过数小时的尝试使用瞬态实现这一点,我似乎没有任何接近梦想!WordPress的:每24小时显示自定义帖子类型的3个随机帖子

本质上,我想使用wordpress瞬变获得3个随机帖子,并在我的主页上显示24小时的'精选'模块。这3个帖子需要混合使用本地和自定义帖子类型。

我到目前为止的代码是:

<div class="container">  
<div class="featured-wrapper"> 
<div class="section-title">featured</div> 

<?php   
if (($my_query = get_transient('my_query_cached')) === false) : 
global $wp_query; 
    $args = array_merge($wp_query->query, array( 
    'post_type' => array('post', 'recipe'), 
    'posts_per_page' => 3, 
    'orderby' => 'rand' 
    ) 
); 
$my_query = new WP_Query($args); 
set_transient('my_query_cached', $my_query, 24 * HOUR_IN_SECONDS); 
endif; 
?> 

<?php if ($my_query->have_posts()) : 
while ($my_query->have_posts()) : $my_query->the_post(); ?> 

<div class="card-wrapper"> 
    <a href="<?php the_permalink(); ?>"> 
     <div class="card-img"> 
     <img src="<?php the_post_thumbnail(); ?>"/> 
    </div> 
    </a> 
<div class="card-cut"></div> 
<div class="card-content"> 
    <a href="category.html"><span class="card-category">treats</span></a> 
    <h1><a href="recipe.html"><?php echo get_the_title(); ?></a></h1> 
</div> 
</div><!--END card wrapper 1--> 
<?php endwhile; wp_reset_postdata(); wp_reset_query(); ?> 
<?php else: ?> 
<div> 
<h1>Sorry...</h1> 
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p> 
</div> 
<?php endif; ?> 
</div><!-- END featured wrapper-->  

目前该代码返回所有职位的数据库,所以我相信在这第一部分的问题,但似乎无法把我的手指在里面。

大量提前感谢您的任何帮助。

UPDATE

固定。上面的代码实际上很好,但值得记住的是,一旦页面已经运行一次,任何编辑都不会显示,因为已经设置了瞬态。值得将刷新率设置为1 * MINUTE_IN_SECONDS进行测试。

回答

0

我把你的代码粘贴到我的网站的frontpage.php中,它马上就能正常工作。将您的瞬态过期更改为5秒或10秒以进行测试。

+0

谢谢你试用它。我刚刚尝试将其设置为5 * MINUTE_IN_SECONDS),文章不更新,他们只是坚持相同的3. –

+0

固定 - 谢谢!在上面的评论中我错误地设置了我的tansient。我已经更新了原来的问题。 –

相关问题