Alpine418 Posted March 15, 2021 Share Posted March 15, 2021 Hi, how can I boost up this code in my template? <?php $selector = 'template=game, genre.name=strategy'; ?> <?php foreach ($topics as $topic): ?> <!-- ~50 topics --> <?php $count = pages()->count($selector . ', topics.name=' . $topic->name) ?><!-- more than 1000 games --> <!-- My awesome super stuff with $count --> <?php endforeach ?> I've three similar queries of the code above in a template and it slows down the page load ~2secs. How can I boost up the count query? Thanks Link to comment Share on other sites More sharing options...
WillyC Posted March 15, 2021 Share Posted March 15, 2021 how.abt u use $cache 2 do jus do it. 1once per hour ? echo $cache->get('topic-count', 3600, function() use($topics) { $str = ''; $strategy = pages()->get("template=genre, name=strategy"); foreach($topics as $topic) { $count = pages()->count("template=game, genre=$strategy, topic=$topic"); $str .= "<li>$topic->title: $count games</li>"; } return $str; }); also.2 make faster u better should uses "id" not name, so "topics" no 'topics.name' and "genre" not genre.name etc. othrwis pw have to look those up for u (?) every time of foreach @rjgamer 2 Link to comment Share on other sites More sharing options...
Alpine418 Posted March 16, 2021 Author Share Posted March 16, 2021 Thank you. It looks like that to cache the HTML output is the only solution. Strange is, that the cache offers a renderFile method. But I dont get it to work to render a partial (site/templates/partials/foo/bar.php). Does anybody have a working example? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now