2017-04-22 8 views
0

이 작업을 수행하는 방법에 대해 많은 기사를 보았지만 과도를 사용하여이를 달성하기 위해 많은 노력을 기울였습니다. 그 꿈!Wordpress : 24 시간마다 맞춤 게시물 유형의 3 개의 임의 게시물을 표시합니다.

기본적으로 3 개의 임의 게시물을 가져와 내 홈페이지에서 24 시간 동안 '추천'모듈에 표시하려면 Wordpress Transients를 사용하고 싶습니다. 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

FIXED - 고마워요! 나는 위의 코멘트에서 잘못 설정했다. 원래 질문을 업데이트했습니다. –