estoy usando wp_query, get_posts y foreach loop para consultar la base de datos y obtener 1 última publicación por wordpress meta_key a continuación es mi código
function get_meta_values($meta_key, $post_type="episodes"){
$posts = get_posts(
array(
'post_type'=> $post_type,
'meta_key'=> $meta_key,
'posts_per_page'=> -1
)
);
$meta_values = array();
foreach($posts as $post){
$meta_values[] = get_post_meta( $post->ID, $meta_key, true );
}
return $meta_values;
}
$meta_key_ids = get_meta_values("ids");
y luego llénalo así
// End Data
?>
<header>
<h2><?php echo $titl; ?></h2>
<?php if($slid == true && !$auto){ ?>
<div class="nav_items_module">
<a class="btn prev"><i class="fas fa-caret-left"></i></a>
<a class="btn next"><i class="fas fa-caret-right"></i></a>
</div>
<?php } ?>
<span><a href="<?php echo $pmlk; ?>" class="see-all"><?php _d('See all'); ?></a></span>
</header>
<div id="epiload" class="load_modules"><?php _d('Loading..'); ?></div>
<div <?php if($slid) echo 'id="dt-episodes" '; ?>class="animation-2 items <?php echo $maxwidth; ?>">
<?php
foreach(array_slice(array_unique($meta_key_ids), 0, 16) as $key){
// Compose Query
$query = array(
'post_type' => array('episodes'),
// 'showposts' => $pitm,
'orderby' => $orde,
'order' => $ordr,
'posts_per_page' => 1,
'meta_key'=> 'ids',
'meta_value' => $key
);
$the_query = new WP_Query($query);
if($the_query->have_posts()) :
while( $the_query->have_posts() ) : $the_query->the_post();
get_template_part('inc/parts/item_ep');
endwhile;
endif;
wp_reset_postdata();
}
?>
</div>
lo que estoy haciendo es obtener todas las publicaciones del episodio de tipo de publicación personalizado y luego mostrar la última publicación de las publicaciones which share the same meta_value in meta_key ids
y recibo 1 publicación de sitios web que comparten los mismos identificadores meta_key
está tardando 10 segundos en consultar la base de datos, por favor dígame cómo puedo hacerlo más rápido
.