2017-04-22 26 views
0

これはどのようにして行うのかの記事をたくさん見てきましたが、これを過渡的に使ってこれを達成しようと数時間後には、夢!Wordpress:24時間ごとにカスタムポストタイプから3つのランダム投稿を表示

本質的に私は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を設定しました。元の質問を更新しました。 –

関連する問題