| | |
| | | <?php |
| | | |
| | | use JVBase\managers\CacheManager; |
| | | use JVBase\managers\Cache; |
| | | use JVBase\utility\Features; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | |
| | | |
| | | function jvbTermHasPosts(int $termID, string $taxonomy):bool |
| | | { |
| | | $cache = CacheManager::for('terms', 30*60)->connectTo('taxonomy'); |
| | | $key = $termID.$taxonomy; |
| | | $cached = $cache->get($key); |
| | | if ($cached) { |
| | | return ($cached === 'true'); |
| | | } |
| | | $taxonomy = jvbCheckBase($taxonomy); |
| | | $tax = get_taxonomy($taxonomy); |
| | | $query = new WP_Query([ |
| | | 'post_type' => $tax->object_type, |
| | | 'posts_per_page' => 1, |
| | | 'fields' => 'id', |
| | | 'tax_query' => [ |
| | | [ |
| | | 'taxonomy' => $taxonomy, |
| | | 'terms' => $termID |
| | | ] |
| | | ] |
| | | ]); |
| | | $result = ($query->have_posts()) ? 'true': 'false'; |
| | | wp_reset_postdata(); |
| | | $cache->set($key, $result); |
| | | return $result === 'true'; |
| | | $cache = Cache::for('termUtility', 30*60)->connect('taxonomy'); |
| | | return $cache->remember( |
| | | $termID, |
| | | function() use($taxonomy, $termID) { |
| | | $taxonomy = jvbCheckBase($taxonomy); |
| | | $tax = get_taxonomy($taxonomy); |
| | | $query = new WP_Query([ |
| | | 'post_type' => $tax->object_type, |
| | | 'posts_per_page' => 1, |
| | | 'fields' => 'ids', |
| | | 'tax_query' => [ |
| | | [ |
| | | 'taxonomy' => $taxonomy, |
| | | 'terms' => $termID |
| | | ] |
| | | ] |
| | | ]); |
| | | $result = ($query->have_posts()) ? 'true' : 'false'; |
| | | wp_reset_postdata(); |
| | | return $result; |
| | | } |
| | | ); |
| | | } |