どのように私は関連のポストのためにこのコードでtransientを使うことができますか?
$related = get_posts(array(
'author' => $author_id,
'category__in' => wp_get_post_categories($post->ID),
'numberposts' => 8,
'orderby' => 'Rand',
'post__not_in' => array(
$post->ID
)
));
if ($related)
foreach ($related as $post) {
setup_postdata($post);
contenedor();
}
wp_reset_postdata();
トランジェントを設定した場合、それはwp_options
テーブルに入るでしょう...それはおそらくあなたがそのように各ポストのためにトランジェントを作成することになるのでそれをすることは最善ではないでしょう。
ポストメタとして保存してから、自分のデータの有効期限を記録して簡単な確認で自分で期限切れにする方が合理的です。例えば:
$related = get_post_meta($post->ID, 'related_posts');
if ($related) {
$expires = get_post_meta($post->ID, 'related_expires');
if ($expires > time()) {
$related = false;
delete_post_meta($post->ID, 'related_posts');
delete_post_meta($post->ID, 'related_expires');
}
}
if (!$related) {
$related = get_posts(array(
'author' => $author_id,
'category__in' => wp_get_post_categories($post->ID),
'numberposts' => 8,
'orderby' => 'Rand',
'post__not_in' => array(
$post->ID
)
));
if ($related) {
add_post_meta($post->ID, 'related_posts', $related);
add_post_meta($post->ID, 'related_expires', time()+(24*60*60));
}
}
if ($related) {
foreach ($related as $post) {
setup_postdata($post);
contenedor();
}
}
wp_reset_postdata();