このコードはありますが、投稿タイプ「code」で公開された投稿の総数が表示されます。
<?php
$count_posts = wp_count_posts('code')->publish;
echo $count_posts;
?>
'code'と 'shop'の2種類の投稿があります。
投稿タイプコードは、投稿タイプ 'shop'の「子」です。
したがって、 "parrent"の投稿タイプ 'shop'に添付されている人のために、 'child'の投稿タイプ 'code'の投稿数を示す必要があります。
アップデート - 解決策(他に問題がある場合):
<?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>';
?>
Ahmedに感謝します。
あなたが$ wpdb直接問い合わせを好むなら、あなたはこのようなものを使うことができます:
global $wpdb;
$count = $wpdb->get_var( "SELECT COUNT(ID) FROM {$wpdb->posts} WHERE post_type = 'code' and post_status = 'publish'" );
echo $count;
上記のSQLクエリで、post_type
を好きなものに変更してください。これは、特定の投稿タイプでのみ公開された投稿の数を返します。
複数の投稿タイプから数を問い合わせたい場合は、次のようにします。
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;
それが役立つことを願っています。
$count = 0;
$loop = new WP_Query( array('post_type' => 'code') );
while ( $loop->have_posts() ) : $loop->the_post();
$count = $count + 1;
endwhile;
echo $count;