J'ai ce code, mais il indique le nombre total de messages publiés par type de message 'code'.
<?php
$count_posts = wp_count_posts('code')->publish;
echo $count_posts;
?>
J'ai 2 types de post: "code" et "magasin".
Le code de type de message est "un enfant" pour le type de message 'magasin'.
Par conséquent, je dois afficher le nombre de messages pour le "code" de type de message "enfant" pour ceux attachés au type de message "magasin" de "parrent".
MISE À JOUR - SOLUTION (le cas échéant, rencontrez le même problème):
<?php
$result = $wpdb->get_results(
$wpdb->prepare(
"SELECT COUNT(*) AS code_num FROM {$wpdb->prefix}postmeta AS postmeta LEFT JOIN {$wpdb->prefix}postmeta AS postmeta1 ON postmeta.post_id = postmeta1.post_id WHERE postmeta1.meta_key = 'code_expire' AND postmeta1.meta_value > %d AND postmeta.meta_key = 'code_shop_id' AND postmeta.meta_value = %s",
current_time('timestamp'),
$post->ID
)
);
$result = array_shift( $result );
echo '
<li class="list-group-item">
<span class="badge">'.$result->code_num.'</span>
<a href="'.esc_url( get_permalink( $post->ID ) ).'"> '.$post->post_title.' </a>
</li>';
?>
Un grand merci à Ahmed!
Si vous préférez les requêtes directes $ wpdb, vous pouvez utiliser quelque chose comme ceci:
global $wpdb;
$count = $wpdb->get_var( "SELECT COUNT(ID) FROM {$wpdb->posts} WHERE post_type = 'code' and post_status = 'publish'" );
echo $count;
Dans la requête SQL ci-dessus, remplacez le post_type
par ce que vous voulez. Cela renverra le nombre de publications publiées sous un type de publication spécifique uniquement.
Si vous souhaitez interroger les comptes de plusieurs types de publication, procédez comme suit:
global $wpdb;
$count = $wpdb->get_var( "SELECT COUNT(ID) FROM {$wpdb->posts} WHERE post_type IN ( 'code', 'shop', 'post', 'etc' ) and post_status = 'publish'" );
echo $count;
J'espère que cela pourra aider.
$count = 0;
$loop = new WP_Query( array('post_type' => 'code') );
while ( $loop->have_posts() ) : $loop->the_post();
$count = $count + 1;
endwhile;
echo $count;