Кастомные поля и кеширование
-
Создано два кастомных типа контента —
product
иrecomend
.
Первый имеет три десятка кастомных полей + пяток таксономий.
Во втором сделано кастомное поле с выбором постов из первого. Нечто вроде «похожих записей», коих будет выбираться до сотни для одной записи типаrecomend
. https://i.imgur.com/WLkLrxn.jpg
И соответственно выводится в виде карточек с кастомными полямиproduct
а. (но не всё три десятка, а около десятка)Как мне кажется это должно создавать большую нагрузку на базу и память.
Подскажите, надо ли и как правильно делать кеширование для таких случаев? Имею ввиду не использование плагинов, а программно, на уровне ВП. Что почитать, в какую сторону смотреть? Желательно на русском.
Подозреваю, что надо использовать Redis или Memcached, но и в этом случае вопросы те же.Читал про объектное и транзитные кеширования в ВП, но мои знания об этом поверхностны и не знаю какое нужно для данного случая.
Или я ошибаюсь и ВП уже такое сам кеширует и от этого нагрузка не будет существенной?
-
Как минимум для того, чтобы не тратить чужое время на споры и чтение ереси типа
За ЧУЖОЕ время мне не платят.
Вы просто любитель. Любитель в ВП, любитель поспорить. Хотя нет. В бесполезных спорах и Вы профессионал. Суперпрофи.
Спасибо за комплимент.
К сожалению ни могу ответить вам, хоть чем-то похожим.покажу примером
<div class="related-post" > <?php $related_ky = 'yui_related_posts_' . $post->ID; if ( ! $relhtml = get_transient( $related_ky ) ) { $tags = wp_get_post_tags($post->ID); ob_start(); if ($tags) { $tag_ids = array(); foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id; $args=array( 'tag__in' => $tag_ids, 'post__not_in' => array($post->ID),'showposts'=>3, 'caller_get_posts'=>1, 'orderby' => 'rand'); $relloop = new wp_query($args); if( $relloop->have_posts() ) { echo '<div class="related-post-headline" >А еще можно почитать:</div>'; echo '<ul class="post-list">'; while ($relloop->have_posts()) { $relloop->the_post(); $thulink = wp_get_attachment_thumb_url( get_post_thumbnail_id(get_the_ID()) ); if(!empty($thulink)) $thumb = '<img src="'.$thulink.'" />'; else $thumb = '<img src="/img/nothumb.png" />'; ?> <li class="related-post-title"><a href="<?php the_permalink() ?>" rel="bookmark" title="Ссылка к: <?php the_title_attribute(); ?>"> <div class="related-post-thumb"><?php echo $thumb; ?></div> <div class="related-post-title"><?php the_title(); ?></div></a></li> <?php wp_reset_postdata(); }}} ?></ul></div> <?php $relhtml = ob_get_clean(); set_transient($related_ky, $relhtml, 14400); } echo $relhtml; ?>
$relhtml в данном случае является уже готовым куском HTML
кешируется на 14400 секунд для каждой записи с ключом yui_related_posts_9999
(где 9999 будет примером ID записи)покажу примером
Огромное спасибо. Буду разбираться.
- Тема «Кастомные поля и кеширование» закрыта для новых ответов.